Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
base64中的phpMail PDF附件稍后将损坏_Php_Email_Base64_Phpmailer_Fpdf - Fatal编程技术网

base64中的phpMail PDF附件稍后将损坏

base64中的phpMail PDF附件稍后将损坏,php,email,base64,phpmailer,fpdf,Php,Email,Base64,Phpmailer,Fpdf,我有一些PHP代码,它从HTML表单中获取数据,创建一个PDF(使用fpdf),然后通过电子邮件将该PDF发送给用户。我正在使用PHPMailer将pdf文件发送给用户。这一切似乎都很好,有效的PDF到达指定的电子邮件地址 在某些情况下,当用户将此电子邮件转发给第三方(始终是同一个第三方)时,第三方会报告PDF不可读(如损坏)。它只发生在少数场合,我找不到一个共同的主题。邮件将发送到Office 365系统,该系统也将是邮件转发的来源 这些电子邮件通常由我的用户在他们的工作问题iPad上接收,信

我有一些PHP代码,它从HTML表单中获取数据,创建一个PDF(使用fpdf),然后通过电子邮件将该PDF发送给用户。我正在使用PHPMailer将pdf文件发送给用户。这一切似乎都很好,有效的PDF到达指定的电子邮件地址

在某些情况下,当用户将此电子邮件转发给第三方(始终是同一个第三方)时,第三方会报告PDF不可读(如损坏)。它只发生在少数场合,我找不到一个共同的主题。邮件将发送到Office 365系统,该系统也将是邮件转发的来源

这些电子邮件通常由我的用户在他们的工作问题iPad上接收,信息将从那里转发

经过一些挖掘,我注意到带有损坏PDF的消息的原始内容如下所示(BASE64部分的标题)。xxxxx就是我

--_005_A421FDCEF50F4B6D813D37045CFF0CBExxxxxx_
Content-Transfer-Encoding: BASE64
Content-Disposition: ATTACHMENT;
    size=1375857;
    modification-date="Thu, 16 Jun 2016 13:18:11 GMT";
    filename=xxxxx92471462.pdf;
    creation-date="Thu, 16 Jun 2016 13:18:11 GMT"
Content-Type: APPLICATION/PDF;
    name=xxxxxbe92471462.pdf
Content-Id: <8D340DC9CB8C174E97F546D602F2FD49@xxxxxx.com>

ReceivedfromDB3PR01MB0729eurprd01prodexchangelabscom101605123byDB3PR01MB0730
eurprd01prodexchangelabscom101605124withMicrosoftSMTPServerTLSid1515118viaMa
ilboxTransportSat11Jun2016103431+0000ReceivedfromDB5PR01CA0007eurprd01prodex
changelabscom10162149145byDB3PR01MB0729eurprd01prodexchangelabscom101605123w
ithMicrosoftSMTPServerTLSid1515118Sat11Jun2016103429+0000ReceivedfromDB3FFO1
1FD045protectiongbl2a01111f4007e04176byDB5PR01CA0007outlookoffice365com2a011
11e40051b717withMicrosoftSMTPServerTLSid1515178viaFrontendTransportSat11Jun2
...
——\u 005\u A421FDCEF50F4B6D813D37045CF0CBXXXXXX_
内容传输编码:BASE64
内容处置:附件;
尺寸=1375857;
修改日期=“2016年6月16日星期四13:18:11 GMT”;
文件名=xxxxx92471462.pdf;
创建日期=“2016年6月16日星期四13:18:11 GMT”
内容类型:APPLICATION/PDF ;;
name=xxxxxbe92471462.pdf
内容Id:
DB3PR01MB0730从DB3PR01MB0729 EURPD01PRODECHANGELABSCOM101605123收到
EURPRD01PRODECHANGELABSCOM101605124与微软MTPServerTLSID15118VIAMA
IlboxTransportsat12016103431+000从5PR01CA0007EURPRD01PRODEX收到
通过DB3PR01MB0729EURPD01PRODECHANGELABSCOM101605123W更改标签SCOM10162149145
从DB3FFO1收到的ITHMicrosoftSMTPServerTLSID15118(2011年6月11日)6103429+000
1FD045保护GBL2A0111F4007E04176 BYDB5PR01CA0007了望台365COM2A011
11E40051B717与MicrosoftSMTPServerTLSID1515178通过前端传输于6月11日
...
在我看来,不知何故,一堆邮件头已经进入BASE64,因此附件被损坏了。稍后在BASE64中,它看起来更像普通的编码附件

我怀疑这是否真的与PHPMailer的初始创建有关,因为消息是好的。在我看来,似乎有什么东西正在进一步破坏电子邮件结构和附件

以前有人见过这样的东西吗


非常感谢您的指点。

如果电子邮件发送到原始收件人,并且只有在他们转发邮件时才发生损坏,那么问题不太可能是您的代码/电子邮件造成的,并且完全在用户端。您可能需要再次检查所有电子邮件头是否以\r\n而不仅仅是\n结尾。这是RFC所要求的,如果某些客户端以\n结尾,则可能无法正确处理标题。Outlook损坏内容并不是什么新鲜事。它通常会把事情弄得一团糟,而这些标题(尤其是资本化)与PHPMailer所生产的完全不同。base64内容显然已损坏-其中应该没有任何可读性。如果电子邮件发送给原始收件人,并且只有在他们转发时才发生损坏,则不太可能是您的代码/电子邮件造成问题,并且完全在用户端。您可能需要再次检查所有电子邮件头是否以\r\n而不仅仅是\n结尾。这是RFC所要求的,如果某些客户端以\n结尾,则可能无法正确处理标题。Outlook损坏内容并不是什么新鲜事。它通常会把事情弄得一团糟,而这些标题(尤其是资本化)与PHPMailer所生产的完全不同。base64内容显然已损坏-其中应该没有任何可读性。