下面的代码多年来一直在向我们的印刷履行人员发送 CSV。本周开始,系统管理员从 sendmail 切换到 qmail,原因与我们要运行的 procmail 配方有关。
可能并非巧合的是,我们开始听说履行人员看到的是空的 CSV,即使在邮件中抄送的其他人看到了记录也是如此。有问题的人看到附件并可以打开它,但他们的 MUI 将其列为 131 字节或零字节。
我们开始向雅虎地址发送相同的结果。但是,Gmail 会看到带有正确行的附件。请注意,这只是一封抄送电子邮件,结果因邮件客户端而异。
我检查了 vi 中的代码并确保没有 ^M 字符或其他控制字符垃圾。
有人见过这个吗?欢迎提出任何建议!
谢谢!
$message = "Here is the file (comma-separated values) of addresses for\n";
$message .= $pm_row['title'] . " Requests ($now_YmdHMS).\n\n";
$data_email = $pm_row['fulfillment_data_email'];
$data_email_cc = "$pm_row[fulfillment_data_email_cc],$developer_email";
$subject = $pm_row['title'] . " Requests ($now_YmdHMS)";
$random_hash = md5(date('r', time()));
$headers = "From: XXX <tourism@xxx.org>\r\nReply-To: tourism@xxx.org\r\nCc:$data_email_cc";
$headers .= "\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
$attachment = chunk_split(base64_encode(file_get_contents($filename)));
$output = "
--PHP-mixed-$random_hash;
Content-Type: multipart/alternative; boundary='PHP-alt-$random_hash'
--PHP-alt-$random_hash
Content-Type: text/plain; charset='iso-8859-1'
Content-Transfer-Encoding: 7bit
$message
--PHP-alt-$random_hash
Content-Type: text/html; charset='iso-8859-1'
Content-Transfer-Encoding: 7bit
$message
--PHP-alt-$random_hash--
--PHP-mixed-$random_hash
Content-Type: application/zip; name=$now_YmdHMS.$pm_row[handle].csv
Content-Transfer-Encoding: base64
Content-Disposition: attachment
$attachment
--PHP-mixed-$random_hash--";
mail($data_email, $subject, $output, $headers);