【问题标题】:Getting empty mails from website从网站获取空邮件
【发布时间】:2012-08-06 15:04:19
【问题描述】:

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

【问题讨论】:

  • 您的代码假设抛出错误“解析错误:语法错误,意外的 T_STRING .....”发布正确的代码
  • 看起来你在这行末尾有一个流氓报价$headers .= "Reply-To: ".$name."';
  • 这是一个打字错误,我已经更正了,基本上我想说的是我可以接收邮件而不会出现任何解析错误,但十分之一的邮件正文将是空的
  • 这里的语法不是问题,而是经常收到空邮件。
  • 您可以将您的mail() 电话添加到您的问题中吗?

标签: php email smtp gmail php4


【解决方案1】:

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

它能解决你的问题吗?

【讨论】:

    猜你喜欢
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    相关资源
    最近更新 更多