0

我在服务器中安装了 php 4.x,我有一个发送邮件的脚本,通常我收到的 10 封邮件中有 1 封没有正文,但主题会在那里。邮件发送代码如下。

 $headers  = "MIME-Version: 1.0 \n";
 $headers .= "Content-type: text/html; charset=iso-8859-1 \n";
 $headers .= "From: Contact Form <contact_form@mycompany.com> \r\n";
 $headers .= "Request Form: $name ($contactid)";

 $subject = "Request: $name";

 $body = "Name:&nbsp;$name<br />Email:&nbsp;$email<br />Phone:&nbsp;$phone<br/>";

 mail("myname@gmail.com",$subject,$body,$headers);

背后的原因是什么。这是我编写的脚本或 SMTP 服务器的问题。

4

1 回答 1

2

根据RFC 2822
标题字段是由字段名称、后跟冒号 (":")、后跟字段正文并以 CRLF 终止的行组成的。字段名称必须由可打印的 US-ASCII 字符组成(即,值介于 33 和 126 之间的字符),冒号除外。

您的标题不遵循这种格式。一些接收邮件服务器可能会更严格,因此可能会拒绝您的邮件。将其更改为:

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Contact Form <contact_form@mycompany.com>\r\n";
$headers .= "Request-Form: $name ($contactid)\r\n";

\r : 回车
\n : 换行

它解决了你的问题吗?

于 2012-08-09T13:46:13.187 回答