附件丢失的 Outlook 2010 扩展
Outlook 2010 extension of attachment lost
我们确实会从我们的应用程序向我们的企业客户发送带有 xls 或 pdf 附件的电子邮件。尽管他们确实收到了包含附件的电子邮件,但他们经常无法打开文件,无论是 pdf 还是 xls(Excel5 版本)。文件扩展名在电子邮件中不再可见,客户端无法 right-click 和保存附件。
包含附件的电子邮件 body 是使用 ZF2 生成的:
$html = new MimePart($content.$this->getSignature());
$html->type = "text/html";
$xlsAttach = new MimePart($xls);
$xlsAttach->type = 'application/vnd.ms-excel';
$xlsAttach->filename = $excelFilename;
$xlsAttach->encoding = \Zend\Mime\Mime::ENCODING_BASE64;
$xlsAttach->disposition = \Zend\Mime\Mime::DISPOSITION_ATTACHMENT;
$body->setParts(array($html, $xlsAttach));
我已经 google 做了,但没有取得任何显着的成功。由于这似乎是客户 IT 基础设施的问题,可能有经验丰富的 IT 管理员或任何 body 可以查看电子邮件 header.
得到的header如下:
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="=_691d16bb3f9c6766e19e9bcbd8ef1861"
From: XXX
To: XXX
Subject: XXX
Cc: XXX
Sender:
X-bounce-key: XXX
X-HE-SMSGID: 1dsxY8-0005qz-Hb
X-HE-Virus-Scanned: Yes
X-HE-Spam-Level: +
X-HE-Spam-Score: 1.6
X-HE-Spam-Report: Content analysis details: (1.6 points)
pts rule name description
---- ---------------------- --------------------------------------------------
0.1 HTML_MESSAGE BODY: HTML included in message
0.7 MIME_HTML_ONLY BODY: Message only has text/html MIME parts
0.1 MISSING_MID Missing Message-Id: header
0.6 HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag
Message-ID: <XXX>
X-HE-SPF: PASSED
Envelope-to: XXX
X-AVK-Virus-Check: AVA 25.14182;7B5CFE
X-AVK-Spam-Check: 1;str=0001.0A0C0208.59BC3F12.007C:SCFSTAT44510583,ss=1,re=-4.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0;8389744
@Dmitry Streblechenko:感谢 Gmail 的提示。
有趣的事情:My/OurOutlook 2010 为收到的附件添加了正确的扩展名,这就是为什么我们从未在客户端意识到这个问题:(。通过将电子邮件发送到我们看到的 Gmail 帐户,文件扩展名实际上丢失了,并且在生成文件时没有扩展。(永远相信你自己的系统)
还有 Gmail 的另一个 +:我们能够优化我们的 SPF。
我们确实会从我们的应用程序向我们的企业客户发送带有 xls 或 pdf 附件的电子邮件。尽管他们确实收到了包含附件的电子邮件,但他们经常无法打开文件,无论是 pdf 还是 xls(Excel5 版本)。文件扩展名在电子邮件中不再可见,客户端无法 right-click 和保存附件。
包含附件的电子邮件 body 是使用 ZF2 生成的:
$html = new MimePart($content.$this->getSignature());
$html->type = "text/html";
$xlsAttach = new MimePart($xls);
$xlsAttach->type = 'application/vnd.ms-excel';
$xlsAttach->filename = $excelFilename;
$xlsAttach->encoding = \Zend\Mime\Mime::ENCODING_BASE64;
$xlsAttach->disposition = \Zend\Mime\Mime::DISPOSITION_ATTACHMENT;
$body->setParts(array($html, $xlsAttach));
我已经 google 做了,但没有取得任何显着的成功。由于这似乎是客户 IT 基础设施的问题,可能有经验丰富的 IT 管理员或任何 body 可以查看电子邮件 header.
得到的header如下:
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="=_691d16bb3f9c6766e19e9bcbd8ef1861"
From: XXX
To: XXX
Subject: XXX
Cc: XXX
Sender:
X-bounce-key: XXX
X-HE-SMSGID: 1dsxY8-0005qz-Hb
X-HE-Virus-Scanned: Yes
X-HE-Spam-Level: +
X-HE-Spam-Score: 1.6
X-HE-Spam-Report: Content analysis details: (1.6 points)
pts rule name description
---- ---------------------- --------------------------------------------------
0.1 HTML_MESSAGE BODY: HTML included in message
0.7 MIME_HTML_ONLY BODY: Message only has text/html MIME parts
0.1 MISSING_MID Missing Message-Id: header
0.6 HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag
Message-ID: <XXX>
X-HE-SPF: PASSED
Envelope-to: XXX
X-AVK-Virus-Check: AVA 25.14182;7B5CFE
X-AVK-Spam-Check: 1;str=0001.0A0C0208.59BC3F12.007C:SCFSTAT44510583,ss=1,re=-4.000,recu=0.000,reip=0.000,cl=1,cld=1,fgs=0;8389744
@Dmitry Streblechenko:感谢 Gmail 的提示。
有趣的事情:My/OurOutlook 2010 为收到的附件添加了正确的扩展名,这就是为什么我们从未在客户端意识到这个问题:(。通过将电子邮件发送到我们看到的 Gmail 帐户,文件扩展名实际上丢失了,并且在生成文件时没有扩展。(永远相信你自己的系统)
还有 Gmail 的另一个 +:我们能够优化我们的 SPF。