修改PHP电子邮件中的日期标题?

时间:2012-07-04 15:49:59

标签: php email sendmail

是否可以使用PHP的邮件功能/ sendmail操作日期标题(网站服务器是linux所以我相信它使用的是sendmail)?

我正在尝试测试(基于Windows)电子邮件检查程序的错误处理,并且需要在邮件中生成无效的日期标题,但是当我使用php邮件发送邮件时,即使我包含自定义日期标题,它似乎被邮件服务器覆盖,我的自定义标头被忽略。我猜我可能需要一个额外的参数让sendmail篡改那个标题,但我似乎无法找到该参数是什么,或者这是否可能。

以下是我发送的内容(删除了个人域名信息)

$headers = "From: ..................\r\n";
$headers .= "Message-ID: <" . md5(uniqid(time())) . "@..................>\n";
$headers .= "MIME-Version: 1.0\n";
//$headers .= "Date: ".date("D, d M Y H:i:s") . " UT\n"; //a valid header for comparison
$headers .= "Date: Tuesday\n"; // intentionally bogus email header
$headers .= "Reply-To: ..................\n";
$headers .= "Return-Path: ..................\r\n";
$headers .= "X-Priority: 3\r\nX-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: PHP/".phpversion()."\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "\n";
$success=mail($to, $s_subject, $s_emailmsg, $headers);

1 个答案:

答案 0 :(得分:1)

假设您编写了一个通过procmail运行的电子邮件检查程序,更简单的方法可能是自己构建一封电子邮件,并通过标准输入将其直接发送到测试脚本。

以这种方式编写单元测试更容易,因为它绕过了其他邮件服务器的任何干扰。执行此操作后,请确保第一行以MAIL FROM xx@yy.com开头。