From f0af3328f0437d585517e5d792b0e1e41291df76 Mon Sep 17 00:00:00 2001 From: Travis Swientek Date: Mon, 22 Jul 2013 17:20:32 -0700 Subject: [PATCH] Refactored the client and message relationship. Created new BatchSending class that extends Message Class. --- Mailgun/Common/BatchMessage.php | 70 ++++++++ Mailgun/Common/Client.php | 52 ++++-- Mailgun/Common/{Messages.php => Message.php} | 178 ++++++++++--------- batman-logo-big.gif | Bin 0 -> 35665 bytes test.php | 66 ++++--- 5 files changed, 238 insertions(+), 128 deletions(-) create mode 100644 Mailgun/Common/BatchMessage.php rename Mailgun/Common/{Messages.php => Message.php} (57%) create mode 100644 batman-logo-big.gif diff --git a/Mailgun/Common/BatchMessage.php b/Mailgun/Common/BatchMessage.php new file mode 100644 index 0000000..8fe308d --- /dev/null +++ b/Mailgun/Common/BatchMessage.php @@ -0,0 +1,70 @@ +client); + $this->batchRecipientAttributes = array(); + $this->client = $client; + } + + public function addBatchRecipient($address, $attributes){ + if($this->toRecipientCount == 1000){ + $this->sendBatchMessage(); + $this->batchRecipientAttributes = array(); + $this->toRecipientCount = 0; + unset($this->message['to']); + } + if(array_key_exists("first", $attributes)){ + if(array_key_exists("last", $attributes)){ + $name = $attributes["first"] . " " . $attributes["last"]; + } + $name = $attributes["first"]; + } + $addr = $name . " <" . $address . ">"; + + if(isset($this->message["to"])){ + array_push($this->message["to"], $addr); + } + else{ + $this->message["to"] = array($addr); + } + $attributes["id"] = $this->toRecipientCount; + $this->batchRecipientAttributes["$address"] = $attributes; + $this->toRecipientCount++; + return true; + } + + public function endBatchMessage(){ + $this->sendBatchMessage(); + $this->batchRecipientAttributes = array(); + $this->toRecipientCount = 0; + unset($this->message['to']); + } + private function sendBatchMessage(){ + if(array_key_exists("from", $this->message)){ + if($this->toRecipientCount > 0){ + if(array_key_exists("subject", $this->message)){ + if(array_key_exists("text", $this->message) || array_key_exists("html", $this->message)){ + $this->message["recipient-variables"] = json_encode($this->batchRecipientAttributes); + return $this->client->sendMessage($this->message); + } + } + } + } + } +} +?> \ No newline at end of file diff --git a/Mailgun/Common/Client.php b/Mailgun/Common/Client.php index 53994ea..6555fbc 100644 --- a/Mailgun/Common/Client.php +++ b/Mailgun/Common/Client.php @@ -1,4 +1,5 @@ domain = $domain; $this->debug = $debug; if($this->debug){ - $this->client = new Guzzler('http://postbin.ryanbigg.com/'); + $this->client = new Guzzler('https://api.ninomail.com/' . $this->apiVersion . '/', array('ssl.certificate_authority' => false)); + $this->client->setDefaultOption('auth', array ($this->apiUser, $this->apiKey)); $this->client->setDefaultOption('exceptions', false); $this->client->setUserAgent($this->sdkUserAgent . '/' . $this->sdkVersion); + $this->validateCredentials(); } else{ $this->client = new Guzzler('https://' . $this->apiEndpoint . '/' . $this->apiVersion . '/'); @@ -70,18 +73,45 @@ class Client{ public function sendMessage($message){ // This is the grand daddy function to send the message and flush all data from variables. - $domain = $this->domain; - if($this->debug){ - $request = $this->client->post("303980cc", array(), $message); - $response = $request->send(); - } - else{ - $request = $this->client->post("$domain/messages", array(), $message); - $response = $request->send(); - } + if(array_key_exists("from", $message) && + array_key_exists("to", $message) && + array_key_exists("subject", $message) && + (array_key_exists("text", $message) || array_key_exists("html", $message))){ + $domain = $this->domain; + if($this->debug){ + $request = $this->client->post("$domain/messages", array(), $message); + if(isset($message["attachment"])){ + foreach($message["attachment"] as $attachments){ + $request->addPostFile("attachment", $attachments); + } + unset($message["attachment"]); + } + if(isset($message["inline"])){ + foreach($message["inline"] as $inlineAttachments){ + $request->addPostFile("inline", $inlineAttachments); + } + } + $response = $request->send(); + } + else{ + $request = $this->client->post("$domain/messages", array(), $message); + if(isset($message["attachment"])){ + foreach($message["attachment"] as $attachments){ + $request->addPostFile("attachment", $attachments); + } + unset($message["attachment"]); + } + if(isset($message["inline"])){ + foreach($message["inline"] as $inlineAttachments){ + $request->addPostFile("inline", $inlineAttachments); + } + } + $response = $request->send(); + } return $response; - } + //Throw an exception here! Missing required parameters. + } } ?> \ No newline at end of file diff --git a/Mailgun/Common/Messages.php b/Mailgun/Common/Message.php similarity index 57% rename from Mailgun/Common/Messages.php rename to Mailgun/Common/Message.php index 968cf3d..a5f0312 100644 --- a/Mailgun/Common/Messages.php +++ b/Mailgun/Common/Message.php @@ -1,7 +1,8 @@ message = array(); + if(isset($message)){ + $this->message = $message; + } $this->toRecipientCount = 0; $this->ccRecipientCount = 0; $this->bccRecipientCount = 0; @@ -32,42 +35,68 @@ class Message{ $this->customOptionCount = 0; } - public function addToRecipient($address, $name = NULL){ - if($name != NULL){ + public function addToRecipient($address, $attributes){ + if($this->toRecipientCount < 1000){ + if(array_key_exists("first", $attributes)){ + if(array_key_exists("last", $attributes)){ + $name = $attributes["first"] . " " . $attributes["last"]; + } + $name = $attributes["first"]; + } + $addr = $name . " <" . $address . ">"; + if(isset($this->message["to"])){ + array_push($this->message["to"], $addr); + } + else{ + $this->message["to"] = array($addr); + } + $this->toRecipientCount++; + return true; } - else{ - $addr = $address . " <" . $address . ">"; - } - $arr = "to[".$this->toRecipientCount."]"; - $this->message[$arr] = $addr; - $this->toRecipientCount++; - return true; } + public function addCcRecipient($address, $name = NULL){ - if($name != NULL){ + if($this->ccRecipientCount < 1000){ + if(array_key_exists("first", $attributes)){ + if(array_key_exists("last", $attributes)){ + $name = $attributes["first"] . " " . $attributes["last"]; + } + $name = $attributes["first"]; + } + $addr = $name . " <" . $address . ">"; - } - else{ - $addr = $address . " <" . $address . ">"; - } - $arr = "cc[".$this->ccRecipientCount."]"; - $this->message[$arr] = $addr; - $this->ccRecipientCount++; - return true; - + + if(isset($this->message["cc"])){ + array_push($this->message["cc"], $addr); + } + else{ + $this->message["cc"] = array($addr); + } + $this->ccRecipientCount++; + return true; + } } public function addBccRecipient($address, $name = NULL){ - if($name != NULL){ + if($this->bccRecipientCount < 1000){ + if(array_key_exists("first", $attributes)){ + if(array_key_exists("last", $attributes)){ + $name = $attributes["first"] . " " . $attributes["last"]; + } + $name = $attributes["first"]; + } + $addr = $name . " <" . $address . ">"; + + if(isset($this->message["bcc"])){ + array_push($this->message["bcc"], $addr); + } + else{ + $this->message["bcc"] = array($addr); + } + $this->bccRecipientCount++; + return true; } - else{ - $addr = $address . " <" . $address . ">"; - } - $arr = "bcc[".$this->bccRecipientCount."]"; - $this->message[$arr] = $addr; - $this->bccRecipientCount++; - return true; } public function setFromAddress($address, $name = NULL){ if($name != NULL){ @@ -111,9 +140,12 @@ class Message{ return true; } public function addAttachment($data){ - $arr = "attachment[".$this->attachmentCount."]"; - $this->message[$arr] = $data; - $this->attachmentCount++; + if(isset($this->message["attachment"])){ + array_push($this->message["attachment"], $data); + } + else{ + $this->message["attachment"] = array($data); + } return true; } public function addInlineImage($data){ @@ -176,14 +208,31 @@ class Message{ $this->message['o:tracking-clicks'] = $data; return true; } - - public function setDeliveryTime($data){ - //BLAH + public function setDeliveryTime($timeDate, $timeZone = NULL){ + if($timeZone == NULL){ + $timeZoneObj = new \DateTimeZone(DEFAULT_TIME_ZONE); + } + else{ + $timeZoneObj = new \DateTimeZone("$timeZone"); + } + + $dateTimeObj = new \DateTime($timeDate, $timeZoneObj); + $formattedTimeDate = $dateTimeObj->format(\DateTime::RFC2822); + $this->message['o:deliverytime'] = $formattedTimeDate; + return true; } - //Handlers for any new features not defined as a concrete function. - public function addCustomData(){} - + public function addCustomData($customName, $data){ + if(is_array($data)){ + $jsonArray = json_encode($data); + $this->message['v:'.$customName] = $jsonArray; + } + else{ + //throw exception here! + return false; + } + + } public function addCustomOption($optionName, $data){ if(isset($this->message['options'][$optionName])){ array_push($this->message['options'][$optionName], $data); @@ -194,41 +243,8 @@ class Message{ return true; } } - public function getMessage(){ - return $this->message; - } + } } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ?> \ No newline at end of file diff --git a/batman-logo-big.gif b/batman-logo-big.gif new file mode 100644 index 0000000000000000000000000000000000000000..4152bf77461ed4aa29f7b90cab8fd87ad9eb5eb0 GIT binary patch literal 35665 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�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 Na%N|GCRhdp06T literal 0 HcmV?d00001 diff --git a/test.php b/test.php index 46eab58..3fe9a5a 100644 --- a/test.php +++ b/test.php @@ -2,59 +2,53 @@ //require 'vendor/autoload.php'; require_once('Mailgun/autoload.php'); -require('Mailgun/Common/Messages.php'); +require('Mailgun/Common/Message.php'); +require('Mailgun/Common/BatchMessage.php'); use Mailgun\Common; use Mailgun\Exceptions\NoDomainsConfigured; use Mailgun\Exceptions\HTTPError; +$client = new Common\Client("key-ca6d168e492611df8307001d60d24a9c-0b27e", "aawdawdad.ninomail.com", true); +$message = new Mailgun\Common\Message(array('from' =>"travis@aawdawdad.ninomail.com", 'to' => "travis@tswientek.com", "subject" => "subject here", "text" => "hello")); + +$response = $client->sendMessage($message->getMessage()); +echo $response->getBody(); + + +//$message = new Mailgun\Common\Message($client); /* -try{ - $client = new Common\Client("key-6e4jujnt879vqn2gx702wov0kg2hl1a6", "trstx.com"); -} -catch (HTTPError $e) { - echo "An HTTP error has occurred! Please try again later\r\n"; -} -//Post a Message +$message = new Mailgun\Common\BatchMessage($client, true); - echo $client->postRequest(array('url' => 'trstx.com/messages'), array('from'=>'test@trstx.com', 'to'=>'travis.swientek@rackspace.com', 'subject' => 'test', 'text' => 'asdf', 'o:testmode'=>true)); - - echo $client->getRequest(array('url' => 'trstx.com/unsubscribes'), array()); - echo $client->postRequest(array('url' => 'trstx.com/unsubscribes'), array('address' => 'travis@whatever.com', 'tag' => '*')); - echo $client->postRequest(array('url' => 'trstx.com/bounces'), array('address' => 'travis@whatever.com')); - echo $client->deleteRequest(array('url' => 'trstx.com/bounces/travis@whatever.com')); - - -require('Mailgun/Common/Messages.php'); - -$client = new Common\Client("key-6e4jujnt879vqn2gx702wov0kg2hl1a6", "trstx.com", true); -echo $client->sendMessage($email); - -$message = new Mailgun\Common\Message(); -$message->addToRecipient("travis@tswientek.com", "travis swientek"); -$message->addCcRecipient("travis@trstx.com", "CC Recipient"); -$message->addBccRecipient("travis@trstx.com", "BCC Recipient"); $message->setFromAddress("travis@tswientek.com", "From Name"); -$message->setSubject("This is the subject of the message!"); -$message->setTextBody("This is the text body of the message!"); -$message->setHtmlBody("This is the html body of the message!"); +$message->setSubject("%recipient.first%, This is the subject of the message!"); +$message->setTextBody("%recipient.first%, This is the text body of the message!"); +$message->setHtmlBody("%recipient.first%, %recipient.my.id% This is the html body of the message!"); $message->addAttachment("@GitHub_Logo.png"); +$message->addAttachment("@batman-logo-big.gif"); $message->setTestMode("yes"); $message->setDkim("yes"); +//$message->setDeliveryTime("January 15, 2014 8:00AM", "CST"); $message->setOpenTracking("yes"); $message->setClickTracking("yes"); $message->addCustomOption("o:myoption", "true"); $message->addCampaignId("askldf"); +$message->addCustomData("mycustomdata", array("name"=> "travis")); + +//echo $message->sendMessage(); +//$message->addBatchRecipient("travis@tswientek.com", array("first" => "Travis", "last" => "Swientek", "my.id" => "ABC12345")); + + +for($i = 0; $i<5; $i++){ + $message->addBatchRecipient("travis@".$i."test.com", array("first" => "$i - First", "last" => "$i - Last", "my.id" => "ABC12345")); +} + +$message->endBatchMessage(); + + +//echo $client->sendMessage($message->getMessage())->getBody(); -$email = $message->getMessage(); -var_dump($email); -echo $client->sendMessage($email); */ - -$client = new Common\Client("key-6e4jujnt879vqn2gx702wov0kg2hl1a6", "trstx.com", false); -echo $client->sendMessage(array("from" => "travis@trstx.com", "to" => "travis@tswientek.com", "subject" => "This is the email subject!", "text" => "Hi from the SDK!")); - - ?> \ No newline at end of file