1

我意识到这与这个问题相似,但是,我在发送给自己时只会收到一封双重电子邮件。我已经使用相同的脚本向其他人发送了电子邮件,他们收到了一封电子邮件。这是电子邮件脚本:

<?php
  function sendEmail( $recipient, $sub, $msg )
  {
    $to      = $recipient;
    $subject = $sub;
    $message = $msg;

    mail( $to, $subject, $message );
  }
?>

调用它的代码是这样的:

if( $retVal != FALSE ) // No errors in execution of report generation
{
  $subject = "Successful Report";
  $message = "The report was successfully generated.";
  // Notify people about success
  sendEmail( $mailto, $subject, $message );

  echo "Successful report generation\n";
}
else // Error in report generation
{
  $subject = "Unsuccessful Report";
  $message = "The report failed to generate.";
  // Notify people about failure
  sendEmail( $mailto, $subject, $message );

  echo "Report generation was unsuccessful\n";
}

其中 $retval 是system()的返回值。任何人都可以对这个问题有所了解吗?或者这是可以忽略的事情?

非常感谢

-生锈的

4

3 回答 3

3

根据对话:您是唯一收到双重电子邮件的收件人,字符串“成功生成报告”仅打印一次。听起来 PHP 不是这里的罪魁祸首,而是 PHP 之外的东西,例如 MTA。

查看您收到的两封电子邮件的标头,尤其是 MessageID 标头。如果它们相同,则从 PHP 发送了一封电子邮件(很好!),并且沿线的某个地方将其发送给您两次。

如果它们不相同(混乱),那么 PHP 实际上确实发送了两封电子邮件(不太可能),或者 PHP 和您的邮件客户端之间的某个地方有一个重新发送者。

在后一种情况下,我将更深入地查看您电子邮件中的标题,以确定每封电子邮件的来源和路由,以及确定 MTA 发送邮件的位置的信封。

于 2012-07-19T18:00:02.043 回答
0

我会将输出添加debug_backtrace()到您的电子邮件正文中。这将允许您确定何时sendEmail调用该函数以及调用它的人。

于 2012-07-19T17:55:45.493 回答
0
$message = "";
$header = "Content-Type: text/html; charset=UTF-8;\r\n";
mail($mailto, $subject, $message, $header);
于 2012-07-19T17:58:59.617 回答