php邮件功能说电子邮件已发送,但它确实发送


php mail function says Email sent but it dosent

>im使用此代码,它会打印出已发送但未收到任何电子邮件我已经坐在我的本地服务器上配置了邮件功能,一切都是正确的但仍然不起作用

$to = "xxxx@yahoo.com";
$subject = "$name";
$txt = "$msg";
$headers = "From: xxxx@gmail.com";
if (mail($to,$subject,$txt, $headers)){
    echo "sent";
}else{
    echo "error";
}

它一直说已发送,但我没有收到任何电子邮件

服务器端垃圾邮件筛选可能是您的问题,尤其是在向某些组织电子邮件地址发送电子邮件时。如果是这样,本文可能对您有用。

仅使用客户端代码很难进行调试。如果您有权限,则必须检查服务器日志

您需要更改php.ini和sendmail cfg以允许从本地服务器发送。这是我的配置。

PHP.ini - 确保sendmail_path指向正确的exe。这是在 php 中的 [mail function] 下.ini

sendmail_path = "'"C:'xampp'sendmail'sendmail.exe'" -t"
;sendmail_path = "C:'xampp'mailtodisk'mailtodisk.exe"

发送邮件.ini [发送邮件]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=gmail address
auth_password=gmail password
force_sender=gmail address

显然,这配置为与gmail一起使用,但是在sendmail中具有相应配置的任何其他smtp服务器都可以使用。