【发布时间】:2012-02-16 09:44:26
【问题描述】:
我使用 PHP mail() 函数来发送电子邮件。是否可以查明电子邮件是否已发送或失败?
【问题讨论】:
我使用 PHP mail() 函数来发送电子邮件。是否可以查明电子邮件是否已发送或失败?
【问题讨论】:
不,无法确定是否收到了电子邮件:电子邮件不是保证传递机制。
除非您在电子邮件中包含收件人必须点击的某种回复链接,否则不会。
【讨论】:
尝试包括 X-Failed-Recipients:>
【讨论】:
PHP Mail 函数返回一个布尔值。因此,您可以很容易地知道邮件是否被接受以进行投递。但是您无法知道它是否是由邮件服务器 (SMTP) 发送的
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
如果邮件被成功接收,则返回 TRUE,FALSE 否则。
重要的是要注意,仅仅因为邮件被接受 交付,这并不意味着邮件实际上会到达预期的 目的地。
链接:http://php.net/manual/en/function.mail.php
代码
if(mail(...)){ ... }
else{ ... }
【讨论】:
不,不检查邮件日志是不可能的。如果邮寄者接受了您的邮件,邮件函数仅返回true,但如果您的收件人已收到邮件,则不会向您提供信息。
如果邮件被成功接收,则返回 TRUE,FALSE 否则。
需要注意的是,仅仅因为邮件被接受投递,并不意味着邮件实际上会到达 预定目的地。
【讨论】:
你在这里......使用 PHPmailer 发送电子邮件的基本方法:
if(!$mail->Send()){
echo "Emails Sending Failed!";
}else{
echo "Emails Successfully Sent!";
}
为了查找额外的失败消息,附加以下代码将有所帮助...
echo $mail->ErrorInfo;
【讨论】: