Так что я столкнулся с проблемой SendRawEmail (Amazon SES), электронные письма отправлены, но не доставлены!
Вот мой код:
$phpMail = new PHPMailer();
$phpMail->addAddress($this->getToEmail(), $this->getToName());
$phpMail->setFrom($this->getFromEmail(), $this->getFromName());
$replyTo = $this->getReplyTo();
if($replyTo){
$phpMail->addReplyTo($this->getReplyToEmail(), $this->getReplyToName());
}
$phpMail->Subject = $subject;
$phpMail->CharSet = 'UTF-8';
$phpMail->AltBody = $plainBody;
$phpMail->Body = $htmlBody;
// $mail->isHTML(true);
$phpMail->preSend();
$rawEmail = array(
'Source' => $this->getFromEmail(),
'Destinations' => array($this->getToEmail()),
'RawMessage' => array(
'Data' => base64_encode($phpMail->getSentMIMEMessage())
)
);
$mail = $this->getSender();
$command = $mail->getCommand("SendRawEmail", $rawEmail);
/** @var Aws\Result $result */
$result = $mail->execute($command);
этот результат вернуть статус 200
{ "MessageId": "someid",
"@metadata": {
"statusCode": 200,
"effectiveUri": "https:\/\/email.us-east-1.amazonaws.com",
"headers": { "x-amzn-requestid": "somegenerated id",
"content-type": "text\/xml",
"content-length": "338",
"date": "Tue, 11 Aug 2015 07:33:03 GMT" }
Но если я отправляю электронные письма с SendEmail, он доставлен
$mail = $this->getSender();
$message = array();
$message['Source'] = "{$this->getFromName()} <{$this->getFromEmail()}>";
$message['Destination']['ToAddresses'][] = "{$this->getToName()} <{$this->getToEmail()}>";
$message['Message'] = array(
'Subject' => array(
'Data' => $this->getSubject()
),
'Body' => array(
'Text' => array('Data' => $this->getBodyPlain()),
'Html' => array('Data' => $this->getBodyHtml())
)
);
$replyTo = $this->getReplyTo();
if($replyTo){
$message['ReplyToAddresses'] = $replyTo;
}
try {
$command = $mail->getCommand("SendEmail", $message);
/** @var Aws\Result $result */
$result = $mail->execute($command);
Мне нужно отправлять письма через SendRawEmail, потому что мне нужно установить обычные заголовки, но как отладить мою проблему, какие-либо предложения?
Итак, я нашел ошибку
Мне нужно отправить письмо без base64_encode, потому что у меня нет вложений
Других решений пока нет …