2012-08-09 48 views
0

我已经在服务器上安装了PHP 4.x,我有一个脚本来发送邮件,通常1我收到的10封邮件中将没有正文,但主题将在那里。邮件发送代码如下。从网站获取空邮件

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

$subject = "Request: $name"; 

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

mail("[email protected]",$subject,$body,$headers); 

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

+0

你的代码假设会抛出一个错误“解析错误:语法错误,意外的T_STRING .....” 发布正确的代码 – 2012-08-09 11:41:03

+1

看起来你在这行'$ headers'的末尾有一个流氓语录。 =“Reply-To:”。$ name。“''; – martynthewolf 2012-08-09 11:48:30

+0

这是一个打字错误,我已经纠正它,基本上我想说的是,我可以收到邮件没有任何解析错误,但十个邮件中的一个会在主体中为空 – n92 2012-08-09 12:01:42

回答

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 <[email protected]>\r\n"; 
$headers .= "Request-Form: $name ($contactid)\r\n"; 

\ R:回车
\ n:换行

它是否解决问题了吗?

+0

@Vinay:你试过我的回答吗?它工作吗? – Jocelyn 2012-08-16 03:16:41