从网站获取空邮件


Getting empty mails from website

我在服务器中安装了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服务器的问题。

根据 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 : 回车
' : 换行

它能解决你的问题吗?