[英]How can I test why sendmail / php isn't working?
我认为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中吗? 怎么办,我应该如何排除故障?
尝试这个:
if(mail($to,$subject,$message, $headers))
{
echo "Test email sent";
}
这将检查是否已发送邮件,如果已发送,它将回显“测试电子邮件已发送”。
首先也是最快:检查您的垃圾邮件文件夹。 Gmail倾向于过滤掉不是来自完善的邮件服务器的邮件。
其次,检查发送电子邮件的服务器上的sendmail日志。 日志应告诉您接收SMTP服务器是否已接受该消息。
mail
功能返回成功仅意味着本地sendmail脚本接受了电子邮件,而不一定发送了电子邮件。
如果您使用联系表格,请仔细检查您的变量。 在您的情况下,它们是硬编码的,但是执行检查总是好的。 这是一个简化的检查器。 (我编辑了检查是否应该随消息一起发送的变量)
if (mail ($to, $subject, $body, $headers)) {
echo '<p>Message Send.</p>';
} else {
echo '<p>Something went wrong, not delivered.</p>';
}
mail()是布尔函数。
$check = mail($to,$subject,$message, $headers);
var_dump($check);
var_dump将返回true或false。
如果为假,则说明配置或代码有问题。
但是,要简要调试您的mail()函数,我需要知道您的操作系统是什么? 您使用哪种类型的Web服务器?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.