我正确配置了php.ini,我认为......
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /usr/sbin/sendmail -t -i
php一般都运行良好。 phpinfo()看起来很好。
我有一个用于发送测试消息的脚本,它声称可以工作..
<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$from = "notarealaddy@domain.com";
$to = "myactualemail@gmail.com";
$subject = "PHP Mail Test script";
$message = "This is a test to check the PHP Mail functionality";
$headers = "From:" . $from;
mail($to,$subject,$message, $headers);
echo "Test email sent";
?>
我总是收到一条消息:“发送测试邮件”
但是没有任何东西出现在gmail中?给出了什么,我该如何排除故障?
答案 0 :(得分:1)
试试这个:
if(mail($to,$subject,$message, $headers))
{
echo "Test email sent";
}
这将检查邮件是否已发送,如果是,则会回显“发送测试邮件”。
答案 1 :(得分:1)
首先和最快:检查您的垃圾邮件文件夹。 Gmail倾向于过滤掉不是来自完善的邮件服务器的邮件。
其次,检查发送电子邮件的服务器上的sendmail日志。日志应告诉您接收SMTP服务器是否已接受该消息。
mail
函数返回成功只表示本地sendmail脚本接受了电子邮件,而不一定是电子邮件已发送。
答案 2 :(得分:1)
如果您使用联系表单,请仔细检查您的变量。在您的情况下,它们是硬编码的,但执行检查总是好的。这是一个简化的检查器。 (我编辑了我应该用消息发送的变量的检查)
if (mail ($to, $subject, $body, $headers)) {
echo '<p>Message Send.</p>';
} else {
echo '<p>Something went wrong, not delivered.</p>';
}
答案 3 :(得分:0)
mail()是布尔函数。
$check = mail($to,$subject,$message, $headers);
var_dump($check);
var_dump将返回true或false。
如果为false,则配置或代码有问题。
然而,要简要调试你的mail()函数,我需要知道,你的操作系统是什么?你使用什么类型的网络服务器?