将Zend Mime Message设置为Zend Mail正文

时间:2014-05-16 15:35:27

标签: email zend-framework zend-mail

我正在尝试使用email向内嵌图片和附件发送Zend Framework 1

$mail = new Zend_Mail();
$mail->setType(Zend_Mime::MULTIPART_MIXED);
$mail->setSubject('Message');
$mail->setFrom('user@example1.com', 'Example user #1');
$mail->addTo('user@example2.com', 'Example user #2');

尝试按this example制作nested email

message
  mainMultipart (content for message, subType="related")
    ->htmlAndTextBodyPart (bodyPart1 for mainMultipart)
      ->htmlAndTextMultipart (content for htmlAndTextBodyPart)
        ->htmlBodyPart (bodyPart1 for htmlAndTextMultipart)
          ->html (content for htmlBodyPart)
        ->textBodyPart (bodyPart2 for the htmlAndTextMultipart)
          ->text (content for textBodyPart)
    ->fileBodyPart1 (bodyPart2 for the mainMultipart)
      ->FileDataHandler (content for fileBodyPart1)

小例子:

$html               = '<p>Hello</p>';
$bodyHtmlPart       = new Zend_Mime_Part($html);
$bodyHtmlPart->type = Zend_Mime::TYPE_HTML;

$bodyMsg            = new Zend_Mime_Message();
$bodyMsg->addPart($bodyHtmlPart);

// And other nesting.. ending with Zend_Mime_Message

问题:

如何将Zend_Mime_Message设置为Zend_Mail正文?下面添加了几个Zend_Mail函数,并没有真正帮助。

$mail->setBodyHtml( ? );
$mail->setBodyText( ? );

我尝试查看Zend_Mail_Message函数,但看起来很相似它仅适用于ZF2

2 个答案:

答案 0 :(得分:2)

怎么样?
$mailObject->setParts($mimeMessageObject->getParts());

答案 1 :(得分:0)

对于内嵌图像,这里有一个人为它写的类: http://davidnussio.wordpress.com/2008/09/21/inline-images-into-html-email-with-zend-framework/

如果你想作为附件发送,那么从文档中简单明了:

$mail = new Zend_Mail();

$at = $mail->createAttachment($myImage);
$at->type        = 'image/gif';
$at->disposition = Zend_Mime::DISPOSITION_INLINE;
$at->encoding    = Zend_Mime::ENCODING_BASE64;
$at->filename    = 'test.gif';

$mail->send();

请注意,Zend的示例和链接中的该类都具有以下用于处置的设置。

Zend_Mime::DISPOSITION_INLINE;

Zend Docs:http://framework.zend.com/manual/1.12/en/zend.mail.attachments.html

希望有所帮助。