5.7.1无法中继-发送电子邮件到非公司地址

  • 本文关键字:电子邮件 地址 公司 -发 php smtp
  • 更新时间 :
  • 英文 :


下面是我的代码:

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

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

Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay in C:inetpubwwwrootinternal_toolsincludemail.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中设置站点:

任何想法?

为了防止滥用发送垃圾邮件,许多电子邮件服务器要求客户端在转发邮件(将其转发到收件人的电子邮件服务器)之前被认证为合法用户。您已在IIS中指定凭据;但是,PHP不使用它们。

选项如下:

  • 代替mail()函数,使用现有的PHP邮件库之一,支持SMTP身份验证(PEAR Mail, phpmailer, Swift mailer, )。
  • 安装和配置msmtp或其中一个替代方案(这里是如何使msmtp与PHP一起工作)。如果您设置了相应的sendmail_path, PHP将在需要发送消息时执行该程序,该程序支持SMTP身份验证。
  • 更改邮件服务器的配置,允许从web服务器的IP地址中继邮件。

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

最新更新