PHP 邮件没有发送,但结果是正确的


PHP mail is not sending, but result is true

我使用phpmailer发送电子邮件。 在一个脚本中,代码工作正常,在另一个脚本中,结果为 true,但没有邮件传递。 错误日志为空,您建议检查什么?谢谢

include_once '/var/www/xxxxxx.cz/web/php/phpmailer.php';
$to = 'dubcznic@gmail.com';
$to_name = '';
$from = 'robot@xxxxxx.cz';
$from_name = 'Robot';
$mail = new phpmailer();
$mail->CharSet = 'UTF-8';
$mail->From = $from;
$mail->FromName = $from_name;
$mail->AddAddress($to, $to_name);  // Add a recipient
$mail->AddCC('nabytek-safr@xxxx.cz');
$mail->WordWrap = 50;     // Set word wrap to 50 characters
$mail->IsHTML(true);      // Set email format to HTML
$mail->Subject = 'Import Robot Autronic';
$mail->Body = 'xxx';
$mail->AltBody = str_replace("<br />", "'n", 'xxx');
if (!$mail->Send())
{
    echo 'Mail Error: ' . $mail->ErrorInfo;
    exit;
}
else
{
    echo 'OK';
}
die();

检查您发送的文本。 可能是您的结果被过滤掉并放入垃圾邮件文件夹中。 有时,标题中带有"测试"的邮件可能会直接发送到垃圾邮件。

无法验证电子邮件是否使用 PHP 传递。

检查您的邮件服务器日志(通常是/var/log/mail)以查看电子邮件是否已发送。

将密件抄送发送到您知道没有垃圾邮件过滤器的电子邮件地址。

您可以使用 Telnet 和 MX 记录验证真实电子邮件。查看此答案https://stackoverflow.com/a/17332773/468891

首先,检查您的垃圾邮件(如果尚未检查

)。

其次,将您的SMTP设置更改为Gmail的设置,输入您的Gmail登录名和密码,然后尝试。如果邮件无法投递,您将收到投递失败通知,其中包含可能的失败原因,这很有帮助。当 PHP 中未显示任何错误时,也会发生传递失败。这总是对我有帮助。