PHPmailer重复电子邮件问题 – 使用$mail-> Send()的条件语句
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHPmailer重复电子邮件问题 – 使用$mail-> Send()的条件语句,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1925字,纯文字阅读大概需要3分钟。
内容图文
![PHPmailer重复电子邮件问题 – 使用$mail-> Send()的条件语句](/upload/InfoBanner/zyjiaocheng/760/e88e9186fca34da59a4f3a98c751e000.jpg)
我遇到了PHPmailer(版本5.1)的一个奇怪问题,我正在尝试解决这个问题.我在这里看到了很多好的反馈,所以我想我会尝试一下.我发现当我尝试使用基于$mail-> send()的条件语句创建自定义确认消息时,我收到重复的电子邮件.我可以使用phpmailer下载附带的通用testemail.php脚本复制它.这是代码:
要求’../class.phpmailer.php’;
尝试{
$mail = new PHPMailer(true); //新实例,启用了例外
$mail-> SMTPDebug = 1;
$MAIL-> IsSMTP(); //告诉班级使用SMTP
$mail-> SMTPAuth = true; //启用SMTP身份验证
$mail-> Port = 25; //设置SMTP服务器端口
$mail-> Host =“mail.domain.com”; // SMTP服务器
$mail->用户名=“用户名”; // SMTP服务器用户名
$mail->密码=“密码”; // SMTP服务器密码
$mail->IsSendmail();
$mail->From = "example_from@domain.com";
$mail->FromName = "First Last";
$to = "example@domain.com";
$mail->AddAddress($to);
$mail->Subject = "PHP Mailer test";
$message = "This is a test. \n";
$mail->Body = $message;
$mail->Send();
if ($mail->Send()) {
echo 'Message has been sent.';
} else {
echo "Mailer Error: " . $mail->ErrorInfo;
}
} catch(phpmailerException $e){
echo $e-> errorMessage();
}
上面的代码回应了“已发送消息”确认,但随后发送了两封电子邮件.如果我注释掉$mail-> send()行,我仍然收到“已发送消息”确认,只收到一条消息.如果我删除条件语句并将$mail-> send()行注释掉,则不会发送任何电子邮件.
为什么添加条件语句会导致发送电子邮件而不调用$mail-> send()方法?添加自定义确认消息的正确方法是什么?
解决方法:
当你在条件中放入$mail-> Send()时,你实际上是再次调用它,发送另一条消息,并检查是否发送了第二条消息.
如果你保持
if ($mail->Send()) {
echo 'Message has been sent.';
} else {
echo "Mailer Error: " . $mail->ErrorInfo;
}
并摆脱原来的,无条件的发送电话,你应该没事.
或者,如果它对您来说更清楚,或者您需要在其他地方进行某些处理,这取决于消息是否已成功发送,您可以执行基本相同的操作:
$status = $mail->Send();
if ($status) {
echo 'Message has been sent.';
} else {
echo "Mailer Error: " . $mail->ErrorInfo;
}
内容总结
以上是互联网集市为您收集整理的PHPmailer重复电子邮件问题 – 使用$mail-> Send()的条件语句全部内容,希望文章能够帮你解决PHPmailer重复电子邮件问题 – 使用$mail-> Send()的条件语句所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。