- Updates mailers to use HTML and/or TEXT body

This commit is contained in:
MrCasual
2015-12-04 14:06:43 -05:00
parent 1f06a7dd0b
commit 6dbe338b01
8 changed files with 60 additions and 29 deletions

View File

@ -31,16 +31,21 @@ class AmazonSES {
} }
function getBody($newsletter, $subscriber) { function getBody($newsletter, $subscriber) {
return array( $body = array(
'Action' => 'SendEmail', 'Action' => 'SendEmail',
'Version' => '2010-12-01', 'Version' => '2010-12-01',
'Source' => $this->from, 'Source' => $this->from,
'Destination.ToAddresses.member.1' => $subscriber, 'Destination.ToAddresses.member.1' => $subscriber,
'Message.Subject.Data' => $newsletter['subject'], 'Message.Subject.Data' => $newsletter['subject'],
'Message.Body.Html.Data' => $newsletter['body']['html'],
'Message.Body.Text.Data' => $newsletter['body']['text'],
'ReturnPath' => $this->from 'ReturnPath' => $this->from
); );
if(!empty($newsletter['body']['html'])) {
$body['Message.Body.Html.Data'] = $newsletter['body']['html'];
}
if(!empty($newsletter['body']['text'])) {
$body['Message.Body.Text.Data'] = $newsletter['body']['text'];
}
return $body;
} }
function request($newsletter, $subscriber) { function request($newsletter, $subscriber) {

View File

@ -22,15 +22,20 @@ class ElasticEmail {
} }
function getBody($newsletter, $subscriber) { function getBody($newsletter, $subscriber) {
return array( $body = array(
'api_key' => $this->apiKey, 'api_key' => $this->apiKey,
'from' => $this->fromEmail, 'from' => $this->fromEmail,
'from_name' => $this->fromName, 'from_name' => $this->fromName,
'to' => $subscriber, 'to' => $subscriber,
'subject' => $newsletter['subject'], 'subject' => $newsletter['subject']
'body_html' => $newsletter['body']['html'],
'body_text' => $newsletter['body']['text']
); );
if(!empty($newsletter['body']['html'])) {
$body['body_html'] = $newsletter['body']['html'];
}
if(!empty($newsletter['body']['text'])) {
$body['body_text'] = $newsletter['body']['text'];
}
return $body;
} }
function request($newsletter, $subscriber) { function request($newsletter, $subscriber) {

View File

@ -22,13 +22,18 @@ class MailGun {
} }
function getBody($newsletter, $subscriber) { function getBody($newsletter, $subscriber) {
return array( $body = array(
'from' => $this->from, 'from' => $this->from,
'to' => $subscriber, 'to' => $subscriber,
'subject' => $newsletter['subject'], 'subject' => $newsletter['subject']
'html' => $newsletter['body']['html'],
'text' => $newsletter['body']['text']
); );
if(!empty($newsletter['body']['html'])) {
$body['html'] = $newsletter['body']['html'];
}
if(!empty($newsletter['body']['text'])) {
$body['text'] = $newsletter['body']['text'];
}
return $body;
} }
function auth() { function auth() {

View File

@ -37,18 +37,23 @@ class Mandrill {
} }
function getBody($newsletter, $subscriber) { function getBody($newsletter, $subscriber) {
return array( $body = array(
'key' => $this->apiKey, 'key' => $this->apiKey,
'message' => array( 'message' => array(
'from_email' => $this->fromEmail, 'from_email' => $this->fromEmail,
'from_name' => $this->fromName, 'from_name' => $this->fromName,
'to' => array($subscriber), 'to' => array($subscriber),
'subject' => $newsletter['subject'], 'subject' => $newsletter['subject']
'html' => $newsletter['body']['html'],
'text' => $newsletter['body']['text']
), ),
'async' => false, 'async' => false,
); );
if(!empty($newsletter['body']['html'])) {
$body['message']['html'] = $newsletter['body']['html'];
}
if(!empty($newsletter['body']['text'])) {
$body['message']['text'] = $newsletter['body']['text'];
}
return $body;
} }
function request($newsletter, $subscriber) { function request($newsletter, $subscriber) {

View File

@ -25,14 +25,19 @@ class SendGrid {
} }
function getBody($newsletter, $subscriber) { function getBody($newsletter, $subscriber) {
return array( $body = array(
'to' => $subscriber, 'to' => $subscriber,
'from' => $this->fromEmail, 'from' => $this->fromEmail,
'fromname' => $this->fromName, 'fromname' => $this->fromName,
'subject' => $newsletter['subject'], 'subject' => $newsletter['subject']
'html' => $newsletter['body']['html'],
'text' => $newsletter['body']['text']
); );
if(!empty($newsletter['body']['html'])) {
$body['html'] = $newsletter['body']['html'];
}
if(!empty($newsletter['body']['text'])) {
$body['text'] = $newsletter['body']['text'];
}
return $body;
} }
function auth() { function auth() {

View File

@ -47,11 +47,9 @@ class MailPoet {
)), )),
'subject' => $newsletter['subject'] 'subject' => $newsletter['subject']
); );
if(!empty($newsletter['body']['html'])) { if(!empty($newsletter['body']['html'])) {
$body['html'] = $newsletter['body']['html']; $body['html'] = $newsletter['body']['html'];
} }
if(!empty($newsletter['body']['text'])) { if(!empty($newsletter['body']['text'])) {
$body['text'] = $newsletter['body']['text']; $body['text'] = $newsletter['body']['text'];
} }

View File

@ -19,7 +19,7 @@ class SMTP {
try { try {
$message = $this->createMessage($newsletter, $subscriber); $message = $this->createMessage($newsletter, $subscriber);
$result = $this->mailer->send($message); $result = $this->mailer->send($message);
} catch (\Exception $e) { } catch(\Exception $e) {
$result = false; $result = false;
} }
return ($result === 1); return ($result === 1);
@ -39,12 +39,17 @@ class SMTP {
function createMessage($newsletter, $subscriber) { function createMessage($newsletter, $subscriber) {
return \Swift_Message::newInstance() $message = \Swift_Message::newInstance()
->setFrom(array($this->fromEmail => $this->fromName)) ->setFrom(array($this->fromEmail => $this->fromName))
->setTo($this->processSubscriber($subscriber)) ->setTo($this->processSubscriber($subscriber))
->setSubject($newsletter['subject']) ->setSubject($newsletter['subject']);
->setBody($newsletter['body']['html'], 'text/html') if(!empty($newsletter['body']['html'])) {
->addPart($newsletter['body']['text'], 'text/plain'); $message = $message->setBody($newsletter['body']['html'], 'text/html');
}
if(!empty($newsletter['body']['text'])) {
$message = $message->addPart($newsletter['body']['text'], 'text/plain');
}
return $message;
} }
function processSubscriber($subscriber) { function processSubscriber($subscriber) {

View File

@ -20,7 +20,7 @@ class WPMail {
} }
function addFilters() { function addFilters() {
foreach ($this->filters as $filter => $method) { foreach($this->filters as $filter => $method) {
add_filter($filter, array( add_filter($filter, array(
$this, $this,
$method $method
@ -29,7 +29,7 @@ class WPMail {
} }
function removeFilters() { function removeFilters() {
foreach ($this->filters as $filter => $method) { foreach($this->filters as $filter => $method) {
remove_filter($filter, array( remove_filter($filter, array(
$this, $this,
$method $method
@ -51,7 +51,10 @@ class WPMail {
function send($newsletter, $subscriber) { function send($newsletter, $subscriber) {
$this->addFilters(); $this->addFilters();
$result = wp_mail($subscriber, $newsletter['subject'], $newsletter['body']['html']); $result = wp_mail(
$subscriber, $newsletter['subject'],
(!empty($newsletter['body']['html'])) ? $newsletter['body']['html'] : $newsletter['body']['text']
);
$this->removeFilters(); $this->removeFilters();
return ($result === true); return ($result === true);
} }