【问题标题】:Multiple php email issue多个php电子邮件问题
【发布时间】:2013-11-14 19:15:53
【问题描述】:

对于我的项目,我必须创建一个发送两封电子邮件的函数。一个给客户,另一个给卖家。两封电子邮件的内容不同。

我使用标准PHP邮件函数编写了这两个函数,如下所示。

            $to      = "xxxx@xxxx.com";
    $subject = 'xxxx';
    $message =  "hello"  
    $headers  .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    mail($to, $subject, $message, $headers);

现在,在我自己公司的网络服务器上测试系统时,两封电子邮件似乎都已发送和接收。但是,当我将同一系统迁移到外部服务器时。只发送一封电子邮件。主要是堆栈中的第一封电子邮件。

虽然我怀疑这个问题与后来的服务器配置有关,但我想知道接下来应该去哪里调试这个问题。

【问题讨论】:

  • 我没有看到任何发送两封电子邮件的代码...
  • 您是否设置了error_reporting(E_ALL) 并收到任何错误/通知?您是否使用过任何其他调试方法(例如检查两台服务器的差异)?
  • 听起来卖家的邮件服务器出于某种原因将电子邮件过滤为垃圾邮件。如果它在您的测试服务器上运行但在外部服务器上不起作用,可能是因为外部服务器在阻止列表中,与您的脚本无关。
  • $headers 是否设置在您未粘贴的代码中?而且,在您尝试发送第二封电子邮件之前它是否未设置(或清空)(另外,我假设您没有粘贴代码)?如果没有,您将 $headers 附加到未设置的字符串,然后可能稍后将相同的两个 $headers 附加到先前设置的 $headers 字符串。重复的标头可能不允许消息在一台服务器上通过,而另一台则不在乎。
  • 另外,删除$headers .= 'MIME-Version: 1.0' . "\r\n"; 中的点,因为在$headers = 'MIME-Version: 1.0' . "\r\n"; 中,第一个 ($headers) 不带一个,也会产生错误。

标签: php email


【解决方案1】:

您的“已发布”代码中缺少一些内容。

$message = "hello" 末尾缺少分号(除非是拼写错误/粘贴错误?)和第一个 $headers 中的点

此外,没有From: 标头属性肯定会导致电子邮件被发送到并被视为垃圾邮件。

解决了这些问题并添加了额外的标头信息后,以下代码可以正常工作并且没有最终出现在我的垃圾邮件中,但收件箱成功。

<?php
$to      = "xxxx@xxxx.com";
$email = "email@example.com";
$subject = 'xxxx';
$message =  "hello";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();

mail($to, $subject, $message, $headers);

?>

或带有成功回显的消息:

<?php
$to      = "xxxx@xxxx.com";
$email = "email@example.com";
$subject = 'xxxx';
$message =  "hello";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

$headers .= "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();

if(mail($to, $subject, $message, $headers))
{
echo "Message sent.";
}

else{
echo "Something went wrong.";
}

?>

访问 PHP.net 网站以获取有关 mail()header() 函数的更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    相关资源
    最近更新 更多