我正在努力通过PHP发送邮件,在IIS7上运行。我在服务器上运行了一个SMTP服务器,我可以通过telnet访问并发送邮件,没有任何问题,php.ini配置如下:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25
当我运行一个简单的PHP脚本来测试邮件功能时:
$to = "test@email.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
if(mail($to,$subject,$message,$headers))
{
echo('ok');
}
else
{
echo('not ok');
}
确定已退回,但未收到任何邮件。我设置了error_reporting(-1);
,也没有收到任何错误或警告。我很难过可能出错的地方?
答案 0 :(得分:0)
尝试
$headers = "From: " . $from . "\r\n";
您必须使用这样的换行符来结束标题。
答案 1 :(得分:0)
我刚刚发现了这个问题 - 它是php.ini中的sendmail_from设置。即使脚本没有使用这个值,它似乎必须是一个格式良好的电子邮件地址,但事实并非如此。将它设置为test@mail.com并重新启动网站已经完成了这个技巧