我在服务器中安装了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: $name<br />Email: $email<br />Phone: $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 : 回车
' : 换行
它能解决你的问题吗?