这是我的代码:
<?php
mail('myemail@gmail.com','Test','Test');
?>
Run Code Online (Sandbox Code Playgroud)
发送到非公司地址时,出现以下错误:
Warning: mail(): SMTP server response: 550 5.7.1 Unable to relay in C:\inetpub\wwwroot\internal_tools\include\mail.php on line 2
Run Code Online (Sandbox Code Playgroud)
将电子邮件地址切换到我的工作电子邮件时,效果很好。我的 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
Run Code Online (Sandbox Code Playgroud)
甚至在 IIS7 中设置了站点:
有任何想法吗?
为了防止滥用发送垃圾邮件,许多电子邮件服务器要求在中继邮件(将其转发到收件人的电子邮件服务器)之前将客户端验证为合法用户。您已在 IIS 中指定凭据;但是,PHP 不使用它们。
以下是您的选择:
mail()使用支持 SMTP 身份验证的现有 PHP 邮件程序库之一(PEAR Mail、phpmailer、Swift Mailer等)代替该函数。sendmail_path。