PHP mail():标题出现在邮件正文中

时间:2011-07-11 14:26:58

标签: php email header

我有一个邮件应用程序的问题,我目前正在linux服务器上使用php进行开发。在向一堆具有不同客户端的地址发送电子邮件之后,接收者有时无法读取这些邮件。 例如,正文似乎从这开始:

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

--=_2cac04098ebf51c342bd57eab2200e38

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

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

安迪

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

2 个答案:

答案 0 :(得分:0)

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

<?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);
?>

答案 1 :(得分:0)

我建议使用PHPMailer,易于使用,负责所有nesseccery标头,轻松附件发送,多个收件人等。

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