【发布时间】:2014-10-16 01:05:14
【问题描述】:
我使用 phpmailer 发送电子邮件。在一个脚本中,代码运行良好,在其他例子中,结果为真,但没有邮件送达。错误日志为空,您建议检查什么? 谢谢
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();
【问题讨论】:
-
重要的是要注意,仅仅因为
mail()函数在php 中返回TRUE,并不意味着邮件实际上会到达预期的收件人。返回 TRUE 表示 PHP 脚本范围之外的问题,可能是客户端电子邮件的垃圾邮件过滤器。 -
检查您的邮件日志。位置取决于 MTA,但通常位于
/var/log/mail.log或/var/log/mail/ -
@DerrickTucker 他没有使用
mail()。他正在使用PHPMailer's Send(),它执行的额外验证优于mail()。 -
@MikeB 仍然使用
mail(),除非指定了 SMTP 或 sendmail -
@MikeB 我相信
Send()本身确实使用mail()。不管怎样,原理都是一样的。