【问题标题】:PHP mail(): Header appears in mail bodyPHP mail():标题出现在邮件正文中
【发布时间】:2011-10-02 20:35:16
【问题描述】:

我目前在 linux 服务器上使用 php 开发的邮件应用程序有问题。在将电子邮件发送到具有不同客户端的一堆不同地址后,有时收件人无法阅读这些邮件。 例如,正文似乎以此开头:

boundary="=_2cac04098ebf51c342bd57eab2200e38"
Message-ID: <lo5huc.id4ip6qutsch.lforce.de>
Date: Mon, 11 Jul 2011 06:01:24 +0200 (CEST)

--=_2cac04098ebf51c342bd57eab2200e38

我真的不知道我的邮件发生了什么。标题中的每一行由\n 分隔,边界条目有一个前导\t。尽管客户端似乎在解析我的标题时读取了一个不存在的换行符。它也发生在标题的其他部分。

有没有人遇到过类似的问题?请帮帮我!

安迪

更新:我很确定这不是编码错误。多年来,我一直在编写这些邮件内容(甚至编写了我自己的邮件客户端),并且效果很好。现在我们使用同样来自一个更大的开源项目的 RMAIL 类。我认为这更像是我的系统配置的问题......但这只是一个猜测。

【问题讨论】:

  • 看起来像 MIME 边界。您是否使用库(如 PEAR::Mail)来发送电子邮件?
  • 它太长而且部分太多,无法在此处发布。是这样的: $header .= "From: some@test.de\nContent-Type: text/html\n" 真的没什么特别的。我正在使用纯 mail() 和 rMail
  • @Andy:不要建立自己的哑剧信封。太容易出错并且工作量太大。请改用 Swiftmailer (swiftmailer.org) 或 PHPMailer (phpmailer.worxware.com)。它们更容易使用。
  • 第二 - SwiftMailer 将震撼你的世界。

标签: php email header


【解决方案1】:

确保正确分隔每个标题行,例如:

<?php
   //To send HTML mail, the Content-type header must be set
   $headers  = 'MIME-Version: 1.0' . "\r\n";
   $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

   // Additional headers
   $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
   $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
   $headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
   $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

   // Mail it
   mail($to, $subject, $message, $headers);
?>

【讨论】:

  • 并用PHP_EOL分隔行...我曾经看了一眼,认为可能是因为发送文件本身的存储(unix格式或dos格式)...但错误再次出现.
  • 那么您是否尝试了 \r\n 分隔符而不仅仅是使用 \n ?这对我来说总是很好。而且我怀疑这是系统设置,因为电子邮件已发送,只是您的内容在您的电子邮件应用程序中显示问题。奇数。
【解决方案2】:

我建议使用 PHPMailer,易于使用,处理所有必要的标头,轻松发送附件,多个收件人等。

http://phpmailer.worxware.com/index.php?pg=phpmailer

【讨论】:

  • 我很绝望......我会试一试并等待。不幸的是,我无法重现此错误。它不会发生在我的任何机器/设备上。只是在一些客户的电脑上,主要是运行 Windows XP...
  • 好吧,你应该找出他们使用的邮件客户端。让电子邮件中的 HTML 在所有邮件客户端上都按预期工作并不是一件容易的事……祝你好运!
猜你喜欢
  • 1970-01-01
  • 2010-12-24
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多