如果PHPMailer失败,则回退到本机PHP邮件功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如果PHPMailer失败,则回退到本机PHP邮件功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1661字,纯文字阅读大概需要3分钟。
内容图文
![如果PHPMailer失败,则回退到本机PHP邮件功能](/upload/InfoBanner/zyjiaocheng/787/b918d1f99c6441c7a6dea6ff461311eb.jpg)
各种用例示例中的PHPMailer documentation表明代码的最后部分 – 发送 – 如果失败则应显示错误消息:
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
在发生故障时我更愿意做的是提供本机PHP mail()函数的回退.好处是电子邮件仍会发送给我,它可以发出PHPMailer失败的通知.
// If PHPMailer code library fails (for whatever reason), fallback to mail()
if (!mail->send()) {
// just an example
$to = 'me@mydomain.com';
$subject = 'You have a new e-mail subscriber + ERROR REPORT';
$message = 'user input data and error description here';
mail($to, $subject, $message);
} else {
// other settings defined earlier in script
$mail->Subject = 'You have a new e-mail subscriber';
$mail->Body = $message;
$mail->send();
}
我对使用PHPMailer语言作为IF表达式犹豫不决,因为PHP的完全回退对我来说似乎更安全可靠.有没有更好的方法来写这个?
编辑:基于下面的评论,这里有一点澄清. PHPMailer默认使用mail().因此,此问题不适用于默认方案.但是,我的实现始终使用需要用户名和密码的自定义SMTP设置(例如smtp.google.com).我的问题涉及自定义邮件服务器出现问题的可能性,用户名或密码.因此,我正在寻找一个超越屏幕上简单错误消息的后备解决方案.
解决方法:
您应该首先为PHPMailer进行分配.在if语句中,!$mail-> send()部分已经尝试发送邮件.所以在你的else语句中,实际上你用PHPMailer再次发送邮件.你可以使用如下.它将尝试使用PHPMailer发送邮件,如果失败,它将使用PHP的邮件功能.
$mail->Subject = 'You have a new e-mail subscriber';
$mail->Body = $message;
if (!$mail->send()) {
$to = 'me@mydomain.com';
$subject = 'You have a new e-mail subscriber + ERROR REPORT';
$message = 'user input data and error description here';
mail($to, $subject, $message);
}
内容总结
以上是互联网集市为您收集整理的如果PHPMailer失败,则回退到本机PHP邮件功能全部内容,希望文章能够帮你解决如果PHPMailer失败,则回退到本机PHP邮件功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。