2012-02-29 89 views
0

我很努力地通过PHP发送邮件,运行在IIS7上。我有一个SMTP服务器,我可以通过telnet访问,并通过发送邮件,没有任何问题的服务器上运行,并php.ini文件配置如下:邮件()不工作

[mail function] 
; For Win32 only. 
SMTP = localhost 
smtp_port = 25 

当我运行一个简单的PHP脚本来测试电子邮件功能:

$to = "[email protected]"; 
    $subject = "Test mail"; 
    $message = "Hello! This is a simple email message."; 
    $from = "[email protected]"; 
    $headers = "From:" . $from; 
    if(mail($to,$subject,$message,$headers)) 
    { 
     echo('ok'); 
    } 
    else 
    { 
     echo('not ok'); 
    } 

ok返回,但没有收到邮件。我已经设置了error_reporting(-1);,我也没有收到任何错误或警告。我很难过,可能会出现什么问题?

+0

请注意您的/ var/log/mail或/var/log/mail.err – silly 2012-02-29 14:51:08

+0

您是否将电子邮件发送到一个好的电子邮件地址? – 2012-02-29 14:51:35

+0

为什么downvote? – Macros 2012-03-02 20:15:56

回答

0

我刚刚发现了这个问题 - 这是php.ini中的sendmail_from设置。尽管脚本没有使用这个值,但它似乎是一个格式正确的电子邮件地址,但事实并非如此。将其设置为[email protected]并重新启动该网站已成功窍门

0

尝试

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

您有换行符这样来结束你的头。

+1

实际上你应该使用PHP_EOL而不是“\ r \ n”。 – jribeiro 2012-02-29 14:56:15

+0

@jribeiro我从来没有听说过。只是做了一点点阅读。谢谢(你的)信息。 – James 2012-02-29 15:14:00