php mail() 不适用于 Windows 2003、IIS SMTP

标签 php iis smtp

我遇到这个问题:

PHP Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for chris<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d2fcbfb3bab3bc92b5bfb3bbbefcb1bdbf" rel="noreferrer noopener nofollow">[email protected]</a> in c:\inetpub\wwwroot\mailtest.php on line 12 

从此脚本:

<?php
$to = "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="4f2c273d263c61222e272e210f28222e2623612c2022" rel="noreferrer noopener nofollow">[email protected]</a>";
$subject = "test";
$body = "this is a test";

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

服务器上 php.ini 的部分:

[mail function]
; For Win32 only.
SMTP = server.domain.com; for Win32 only
smtp_port = 25

; For Win32 only.
sendmail_from = <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c1b2b4b1b1aeb3b581a5aeaca0a8afefa2aeac" rel="noreferrer noopener nofollow">[email protected]</a>
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

(请注意,“服务器”和“域”准确指的是实际服务器和域名)

在 IIS 中,SMTP 正在运行。在“访问” 选项卡的“中继” 按钮下,将选择哪些计算机可以通过此虚拟服务器中继设置为复选框“仅限下面的列表” 列表中为 “127.0.0.1(xxx.xxx.xxx.xxx)”(x 代表实际服务器 IP 地址)。

服务器正在运行 Windows Server 2003 Service Pack 2,截至 2008 年 9 月 1 日下午 5 点已完全修补。我假设它正在运行 IIS7(如何检查?)。

有什么想法吗?

回应Espo :该计算机托管在数据中心。我们不想使用 Gmail 帐户(我们正在这样做,但想放弃它)。 Windows Server 2003 带有自己的 SMTP 服务器。

更新:根据 Yaakov Ellis 的建议,我放弃了所有中继限制并将服务器 IP 添加到允许列表中(使用提供的反向 DNS 按钮),然后事情开始工作。

感谢 Espo 和 Yaakov 帮助我。

最佳答案

尝试取消 SMTP 服务器中中继的 IP 限制,并向所有中继开放。如果设置后它有效,那么您就知道问题与原始限制有关。在这种情况下,可能是 DNS 问题,或者您列出的 IP 地址有误。

关于php mail() 不适用于 Windows 2003、IIS SMTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38920/

相关文章:

php - 为什么在尝试插入数据库时​​,Prepare语句出现错误

php - Laravel 在另一个表中保存外键

c# - ASP.NET 应用程序的磁盘空间不足

asp.net - 重新编译asp.net网站时如何重新启动IIS站点

ruby - 如何使用 Ruby 的邮件 gem 通过 smtp 发送电子邮件?

ssl - 与 SMTP 服务器的连接是否安全?

PHP 正则表达式匹配字母数字和连字符(不是空格)以用作子域

php - 禁用部分页面php的警告和通知

reactjs - CORS 未获取 header 的 Fetch Post 问题

perl - 无法使用 Perl 中的 Net::SMTP 模块在端口 465 上提交电子邮件