有什么理由可以发送重复的电子邮件吗?我有一个PHP页面,上面只有这个代码,每次运行它都会给我发两封电子邮件。
<?php
mail("abc@def.ghi", "test", "test");
?>
答案 0 :(得分:1)
也许你的页面加载了两次,因此执行代码两次......你可以尝试一些限制,比如
if ($sent == '0') {
mail("abc@def.ghi", "test", "test");
$sent = 1;
}
这是一个简单的php页面,还是CMS的一部分?也许某些模块可能会干扰您的页面...
答案 1 :(得分:1)
感谢您的投入。
事实证明这是一个浏览器插件问题,特别是Firefox 4.0.1上的ySlow 2.1.0
我让我们的服务器管理员调查问题,并且他报告说我每次访问该页面时都会显示两次点击。他试着在他的机器上加载它,脚本工作正常,只加载一次。我在Chrome上尝试过自己的工作,只发了一次电子邮件。我经历了各种附加组件,最后将ySlow视为罪魁祸首。
不确定这是否意味着ySlow每次加载两次或者是什么,但我必须禁止它。如果有人对ySlow解决问题有任何建议,请告诉我。
再次感谢。
答案 2 :(得分:0)
您可以尝试以这种方式进行调试
<?php
mail("abc@def.ghi", "test", "test");
exit("sent");
?>
只需将“退出”放在那里再试一次。如果仍然发送两次,可能是服务器问题,或者可能是'php.ini'中的[mail函数](sendmail_from&amp; sendmail_path)
答案 3 :(得分:0)
为了以防万一,我发现我的代码有一个备用命令,它会生成两封电子邮件:
<?php
$headers .= 'Bcc: anotheruser@domain.com' . "\r\n";
?>
我删除了这个&#34; \ r \ n&#34; ,它解决了麻烦。
答案 4 :(得分:0)
聚会迟到了,但对于那些将来要阅读本文的人来说:
在提交检查失败后取消设置post值,因此重新加载不会再次处理数据:
if(isset($_POST[$SubmitCode]))
{
unset($_POST[$SubmitCode]); // Clear post signal.
}
当页面重新加载时,经常不会清除帖子提交设置。为什么这是真的我不知道,但清除帖子,解决问题。