2013-02-06 65 views
2

我想从我的PHP应用程序发送电子邮件。为此,我在Windows服务器2008的IIS中设置了我的网站。我可以安装Windows SMTP服务器。发送电子邮件带有SMTP服务器的PHP到Windows Server 2008

然后我创建了一个测试页,以发送电子邮件:

<?php 
    Ini_set ('SMTP', 'localhost'); 
    Ini_set ('sendmail_from', '[email protected]'); 

    $to = '[email protected]'; 
    $subject = 'Example subject'; 
    $body = 'body ... With an example'; 

    if(mail($to, $subject, $body)){ 
    echo "Successful"; 
    }else{ 
    echo "Error"; 
    } 
?> 

我还可以配置php.ini并SMTP电子邮件在IIS这样的:

[Mail function] 
smtp = localhost 
smtp_port = 25 

然后我测试送我邮件。当我将电子邮件发送到本地域的电子邮件地址到本地域中的另一个电子邮件地址时。我回到我的页面“成功”和电子邮件进入该文件夹中:

C:\inetpub\mailroot\Drop 

通过利弊,如果我发送一封电子邮件从本地域中的电子邮件地址的电子邮件地址向外部域(@ hotmail.com) 。我的页面返回“错误”,没有任何反应。

我看着我的SMTP服务器的日志文件,但没有错误信息。

你能帮我吗?

+0

那么SMTP服务器可能没有配置为中继电子邮件的外部域。启用'display_errors'设置并查看PHP是否报告了一些错误。 –

+0

如何配置继电器? – Florent

回答

0

如果您的页面返回错误(最可能是500),那么您需要查看与SMTP错误日志不同的PHP错误日志。请让我们知道您发现的内容,因为在尝试执行php邮件功能时遇到的任何错误都会显示在这些日志中。

+0

这是我说,如果mail()函数返回false,那么它必须回显“错误”。所以他只在我的页面上显示“错误”。 我也看到PHP错误日志,但没有错误。 – Florent

1

我成功推进了一步。现在,当我从本地域的电子邮件地址发送电子邮件到外部域(@ hotmail.com)的电子邮件地址时,邮件被发送到我的PHP页面,它在队列中卡住C:\inetpub\mailroot\Queue

有谁知道这是什么问题?

谢谢

相关问题