php邮件重复

时间:2011-06-07 16:29:57

标签: php

有什么理由可以发送重复的电子邮件吗?我有一个PHP页面,上面只有这个代码,每次运行它都会给我发两封电子邮件。

<?php
    mail("abc@def.ghi", "test", "test");
?>

5 个答案:

答案 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.
  }

当页面重新加载时,经常不会清除帖子提交设置。为什么这是真的我不知道,但清除帖子,解决问题。