SMTP服务器响应:550 5.7.1无法中继 - 将电子邮件发送到非公司地址

时间:2013-06-13 18:52:07

标签: php smtp

这是我的代码:

<?php
mail('myemail@gmail.com','Test','Test');
?>

发送到非公司地址时,我收到以下错误:

Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay in C:\inetpub\wwwroot\internal_tools\include\mail.php on line 2

将电子邮件地址切换为我的工作电子邮件时,它可以正常工作。我的PHP.ini也很好看:

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
SMTP = PCMAIL1.mycompany.com
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = no-reply@mycompany.com

甚至在IIS7中设置了网站:

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

为防止abuse for sending spam,许多电子邮件服务器要求在转发邮件(将其转发到收件人的电子邮件服务器)之前将客户端验证为合法用户。您已在IIS中指定凭据;但是,PHP没有使用它们。

以下是您的选择:

  • 使用一个支持SMTP身份验证的现有PHP邮件程序库(PEAR Mail,phpmailer,Swift Mailer,),而不是mail()函数。
  • 安装和配置msmtp或其中一个备选方案(此处为how to make msmtp work with PHP)。只要相应地设置sendmail_path,PHP就会执行支持SMTP身份验证的程序。
  • 更改邮件服务器的配置,以允许从Web服务器的IP地址中继邮件。

答案 1 :(得分:0)

您需要检查您的Smtp提供商的政策。或者您需要检查您的Smtp服务器配置(如果此服务器直接发送电子邮件)