mail()无法正常工作

时间:2012-02-29 14:49:37

标签: php

我正在努力通过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);,也没有收到任何错误或警告。我很难过可能出错的地方?

2 个答案:

答案 0 :(得分:0)

尝试

$headers = "From: " . $from . "\r\n";

您必须使用这样的换行符来结束标题。

答案 1 :(得分:0)

我刚刚发现了这个问题 - 它是php.ini中的sendmail_from设置。即使脚本没有使用这个值,它似乎必须是一个格式良好的电子邮件地址,但事实并非如此。将它设置为test@mail.com并重新启动网站已经完成了这个技巧