3

我用 PHP Zend 框架类Zend_Mail构建了一个电子邮件。有一个带有相关内联图像的文本和一个 html 部分。我也想附上一个pdf文件。

我的问题是关于哑剧结构的。有两种选择:

选项1:

Content-Type: multipart/mixed
  Content-Type: multipart/alternative 
    Content-Type: text/plain; charset=UTF-8      
    Content-Type: multipart/related 
      Content-Type: text/html; charset=UTF-8 
      Content-Type: image/jpeg
      Content-Type: image/jpeg
      Content-Type: image/png
  Content-Type: application/pdf 

选项2:

Content-Type: multipart/related;
  Content-Type: multipart/alternative;
    Content-Type: text/plain; charset=utf-8
    Content-Type: text/html; charset=utf-8
  Content-Type: image/jpeg
  Content-Type: image/jpeg
  Content-Type: image/png
  Content-Type: application/pdf

选项 2 由 Zend_Mail 构建,但 Apple Mail Application 无法识别 pdf。在 Thunderbird 3 和 Outlook 2007 中没问题。只有在 Apple Mail 中 PDF 附件无法识别。

选项 1 在 Apple Mail、Thunderbord 和 Outlook 中是可以的。但是从 Zend 框架类Zend_Mail中得到这个结构会有点棘手。

这是 Apple Mail 中的错误还是选项 2 不规范?

亲切的问候, sn

4

2 回答 2

0

您是否尝试过指定类型?请参阅此页面http://framework.zend.com/manual/en/zend.mail.attachments.html

我用这个

    $obj_MailAttachment = new Zend_Mime_Part($allegato);
    $obj_MailAttachment->type = 'application/pdf';
    $obj_MailAttachment->disposition = Zend_Mime::DISPOSITION_ATTACHMENT;
    $obj_MailAttachment->encoding = Zend_Mime::ENCODING_BASE64;
    $obj_MailAttachment->filename = 'ordine'.$ordine['numero'].'.pdf';

...

$mail->addAttachment($obj_MailAttachment);
于 2011-10-14T15:47:17.830 回答
-1

这两个选项都违反了 RFC822,标题行必须从其行的第一个字符开始;这很重要,因为听者折叠是由第一个字符触发的,即空格 SP (#32) 或 HT (#09),IIRC。

例子:

Content-Type: text/html; charset=UTF-8 

Content-Type: text/html;
  charset=UTF-8

完全等价。

做你(显然)尝试的正确方法是使用边界属性,如下所示:

Content-Type: multipart/mixed; boundary="1610edf3f7626f0847a5e75c55287644"
OTHER-HEADERS
--1610edf3f7626f0847a5e75c55287644
Content-Type: multipart/mixed; boundary="embedded_boundary"
OTHER-HEADERS
--embedded_boundary
NESTED-MESSAGE-GOES-HERE
--embedded_boundary--
--1610edf3f7626f0847a5e75c55287644--

嵌套部分的一部分将包含 PDF 附件。

参考: http: //www.faqs.org/rfcs/rfc2822.html和此处提供的链接:电子邮件标头是否区分大小写?

于 2011-10-25T22:09:51.917 回答