2013-07-23 65 views
1

我遇到了一個奇怪的錯誤:
我使用Zend \ Mail \ Message和Zend \ Mime \ Message發送帶有或不帶有附件的HTML格式的電子郵件。
一切工作正常,但現在HTML作爲attchement發送。ZF2 Mail - 作爲附件發送的HTML

我會把一些代碼(我創建了一個類來發送我的電子郵件):

<?php 
class EmailManager 
{ 
    static protected $_instance; 

    protected $sender  = null; 
    protected $message  = null; 
    protected $mimeMessage = null; 
    protected $parts  = null; 
    protected $subject  = null; 

    ..... 

    protected function __construct() { 
     self::init();   
    } 

    protected function init() 
    { 
     $this->sender = new Sendmail(); 
     $this->message = new Message(); 
     $this->mimeMessage = new MimeMessage(); 
     $this->parts = array(); 
     $this->subject = DEFAULT_SUBJECT; 
    } 

    protected function loadReset(...) 
    { 
      ... 

     $subject = '...'; 
     $content = ' 
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
      <html xmlns="http://www.w3.org/1999/xhtml"> 
       <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
       </head> 
       <body> 
        SOM HTML CONTENT 
       </body> 
      </html> 
     '; 

     $body = new Part($content); 
     $body->type = 'text/html'; 
     $body->charset = 'UTF-8'; 
     $body->disposition = \Zend\Mime\Mime::DISPOSITION_INLINE; 

     $this->parts[] = $body; 
     $this->subject = $subject; 
    } 

    public function sendTo($receiver) 
    { 
     $this->mimeMessage->setParts($this->parts); 

     $this->message->setEncoding(self::ENCODING) 
         ->addFrom(self::FROM_ADRESS, self::FROM_NAME) 
         ->addTo($receiver) 
         ->setSubject($this->subject) 
         ->setBody($this->mimeMessage); 

     $this->sender->send($this->message); 
    } 
    .... 
    } 
?> 

然後我調用這個類是這樣的:

$emailMng = EmailManager::getInstance(); 
$emailMng->load('reset', /* some params */)); 
$emailMng->sendTo($user->get('email')); 

這是真的奇怪的原因即使使用$body->disposition = \Zend\Mime\Mime::DISPOSITION_INLINE;

回答

0

答案在這裏:send email with attached files in ZF2 但wi如果你把這些信息結合起來,並用多部分/替代方法創建一個新的部分,它就可以工作。

對於這樣一個普通的任務,這不是一個非常好的界面;)