/** * Given a SimpleEmailServiceMessage object, submits the message to the service for sending. * * @param SimpleEmailServiceMessage $sesMessage An instance of the message class * @param boolean $use_raw_request If this is true or there are attachments to the email `SendRawEmail` call will be used * @param boolean $trigger_error Optionally overwrite the class setting for triggering an error (with type check to true/false) * @return array An array containing the unique identifier for this message and a separate request id. * Returns false if the provided message is missing any required fields. * @link(AWS SES Response formats, http://docs.aws.amazon.com/ses/latest/DeveloperGuide/query-interface-responses.html) */ public function sendEmail($sesMessage, $use_raw_request = false, $trigger_error = null) { if (!$sesMessage->validate()) { $this->__triggerError('sendEmail', 'Message failed validation.'); return false; } $rest = new SimpleEmailServiceRequest($this, 'POST'); $action = !empty($sesMessage->attachments) || $use_raw_request ? 'SendRawEmail' : 'SendEmail'; $rest->setParameter('Action', $action); if ($action == 'SendRawEmail') { // echo $sesMessage->getRawMessage();return; $rest->setParameter('RawMessage.Data', $sesMessage->getRawMessage()); } else { $i = 1; foreach ($sesMessage->to as $to) { $rest->setParameter('Destination.ToAddresses.member.' . $i, $sesMessage->encodeRecipients($to)); $i++; } if (is_array($sesMessage->cc)) { $i = 1; foreach ($sesMessage->cc as $cc) { $rest->setParameter('Destination.CcAddresses.member.' . $i, $sesMessage->encodeRecipients($cc)); $i++; } } if (is_array($sesMessage->bcc)) { $i = 1; foreach ($sesMessage->bcc as $bcc) { $rest->setParameter('Destination.BccAddresses.member.' . $i, $sesMessage->encodeRecipients($bcc)); $i++; } } if (is_array($sesMessage->replyto)) { $i = 1; foreach ($sesMessage->replyto as $replyto) { $rest->setParameter('ReplyToAddresses.member.' . $i, $sesMessage->encodeRecipients($replyto)); $i++; } } $rest->setParameter('Source', $sesMessage->encodeRecipients($sesMessage->from)); if ($sesMessage->returnpath != null) { $rest->setParameter('ReturnPath', $sesMessage->returnpath); } if ($sesMessage->subject != null && strlen($sesMessage->subject) > 0) { $rest->setParameter('Message.Subject.Data', $sesMessage->subject); if ($sesMessage->subjectCharset != null && strlen($sesMessage->subjectCharset) > 0) { $rest->setParameter('Message.Subject.Charset', $sesMessage->subjectCharset); } } if ($sesMessage->messagetext != null && strlen($sesMessage->messagetext) > 0) { $rest->setParameter('Message.Body.Text.Data', $sesMessage->messagetext); if ($sesMessage->messageTextCharset != null && strlen($sesMessage->messageTextCharset) > 0) { $rest->setParameter('Message.Body.Text.Charset', $sesMessage->messageTextCharset); } } if ($sesMessage->messagehtml != null && strlen($sesMessage->messagehtml) > 0) { $rest->setParameter('Message.Body.Html.Data', $sesMessage->messagehtml); if ($sesMessage->messageHtmlCharset != null && strlen($sesMessage->messageHtmlCharset) > 0) { $rest->setParameter('Message.Body.Html.Charset', $sesMessage->messageHtmlCharset); } } } $rest = $rest->getResponse(); if ($rest->error === false && $rest->code !== 200) { $response = array('code' => $rest->code, 'error' => array('Error' => array('message' => 'Unexpected HTTP status'))); return $response; } if ($rest->error !== false) { if ($this->__trigger_errors && $trigger_error !== false || $trigger_error === true) { $this->__triggerError('sendEmail', $rest->error); return false; } return $rest; } $response = array('MessageId' => (string) $rest->body->{"{$action}Result"}->MessageId, 'RequestId' => (string) $rest->body->ResponseMetadata->RequestId); return $response; }
/** * Given a SimpleEmailServiceMessage object, submits the message to the service for sending. * * @return An array containing the unique identifier for this message and a separate request id. * Returns false if the provided message is missing any required fields. */ public function sendEmail($sesMessage) { if (!$sesMessage->validate()) { return false; } $rest = new SimpleEmailServiceRequest($this, 'POST'); $rest->setParameter('Action', 'SendEmail'); $i = 1; foreach ($sesMessage->to as $to) { $rest->setParameter('Destination.ToAddresses.member.' . $i, $to); $i++; } if (is_array($sesMessage->cc)) { $i = 1; foreach ($sesMessage->cc as $cc) { $rest->setParameter('Destination.CcAddresses.member.' . $i, $cc); $i++; } } if (is_array($sesMessage->bcc)) { $i = 1; foreach ($sesMessage->bcc as $bcc) { $rest->setParameter('Destination.BccAddresses.member.' . $i, $bcc); $i++; } } if (is_array($sesMessage->replyto)) { $i = 1; foreach ($sesMessage->replyto as $replyto) { $rest->setParameter('ReplyToAddresses.member.' . $i, $replyto); $i++; } } $rest->setParameter('Source', $sesMessage->from); if ($sesMessage->returnpath != null) { $rest->setParameter('ReturnPath', $sesMessage->returnpath); } if ($sesMessage->subject != null && strlen($sesMessage->subject) > 0) { $rest->setParameter('Message.Subject.Data', $sesMessage->subject); if ($sesMessage->subjectCharset != null && strlen($sesMessage->subjectCharset) > 0) { $rest->setParameter('Message.Subject.Charset', $sesMessage->subjectCharset); } } if ($sesMessage->messagetext != null && strlen($sesMessage->messagetext) > 0) { $rest->setParameter('Message.Body.Text.Data', $sesMessage->messagetext); if ($sesMessage->messageTextCharset != null && strlen($sesMessage->messageTextCharset) > 0) { $rest->setParameter('Message.Body.Text.Charset', $sesMessage->messageTextCharset); } } if ($sesMessage->messagehtml != null && strlen($sesMessage->messagehtml) > 0) { $rest->setParameter('Message.Body.Html.Data', $sesMessage->messagehtml); if ($sesMessage->messageHtmlCharset != null && strlen($sesMessage->messageHtmlCharset) > 0) { $rest->setParameter('Message.Body.Html.Charset', $sesMessage->messageHtmlCharset); } } $rest = $rest->getResponse(); $response['MessageId'] = (string) $rest->body->SendEmailResult->MessageId; $response['RequestId'] = (string) $rest->body->ResponseMetadata->RequestId; return $response; }
/** * Given a SimpleEmailServiceMessage object, submits the message to the service for sending. * * @return An array containing the unique identifier for this message and a separate request id. * Returns false if the provided message is missing any required fields. */ public function sendEmail($sesMessage) { if (!$sesMessage->validate()) { $this->__triggerError('sendEmail', 'Message failed validation.'); return false; } $rest = new SimpleEmailServiceRequest($this, 'POST'); $rest->setParameter('Action', 'SendEmail'); $i = 1; foreach ($sesMessage->to as $to) { $rest->setParameter('Destination.ToAddresses.member.' . $i, $to); $i++; } if (is_array($sesMessage->cc)) { $i = 1; foreach ($sesMessage->cc as $cc) { $rest->setParameter('Destination.CcAddresses.member.' . $i, $cc); $i++; } } if (is_array($sesMessage->bcc)) { $i = 1; foreach ($sesMessage->bcc as $bcc) { $rest->setParameter('Destination.BccAddresses.member.' . $i, $bcc); $i++; } } if (is_array($sesMessage->replyto)) { $i = 1; foreach ($sesMessage->replyto as $replyto) { $rest->setParameter('ReplyToAddresses.member.' . $i, $replyto); $i++; } } $rest->setParameter('Source', $sesMessage->from); if ($sesMessage->returnpath != null) { $rest->setParameter('ReturnPath', $sesMessage->returnpath); } if ($sesMessage->subject != null && strlen($sesMessage->subject) > 0) { $rest->setParameter('Message.Subject.Data', $sesMessage->subject); if ($sesMessage->subjectCharset != null && strlen($sesMessage->subjectCharset) > 0) { $rest->setParameter('Message.Subject.Charset', $sesMessage->subjectCharset); } } if ($sesMessage->messagetext != null && strlen($sesMessage->messagetext) > 0) { $rest->setParameter('Message.Body.Text.Data', $sesMessage->messagetext); if ($sesMessage->messageTextCharset != null && strlen($sesMessage->messageTextCharset) > 0) { $rest->setParameter('Message.Body.Text.Charset', $sesMessage->messageTextCharset); } } if ($sesMessage->messagehtml != null && strlen($sesMessage->messagehtml) > 0) { $rest->setParameter('Message.Body.Html.Data', $sesMessage->messagehtml); if ($sesMessage->messageHtmlCharset != null && strlen($sesMessage->messageHtmlCharset) > 0) { $rest->setParameter('Message.Body.Html.Charset', $sesMessage->messageHtmlCharset); } } $rest = $rest->getResponse(); if ($rest->error === false && $rest->code !== 200) { $rest->error = array('code' => $rest->code, 'message' => 'Unexpected HTTP status'); } /*if($rest->error !== false) { $this->__triggerError('sendEmail', $rest->error); return false; }*/ $response['errorcode'] = $rest->code; $response['MessageId'] = (string) $rest->body->SendEmailResult->MessageId; $response['RequestId'] = (string) $rest->body->ResponseMetadata->RequestId; return $response; }