2015-08-11 6 views
1

Итак, у меня возникла проблема с SendRawEmail (Amazon SES), электронные письма отправлены, но не доставлены! Вот мой код:Amazon Ses SendRawEmail - не доставлен

$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, потому что я нужно установить заголовки custome, но как отладить мою проблему, любые предложения?

ответ

1

Итак, я нашел ошибку Мне нужно отправить электронное письмо без base64_encode, потому что у меня нет приложений

Смежные вопросы