邮件使用PHP转到垃圾邮件而不是收件箱和邮件标题部分的一些错误

时间:2014-09-24 07:40:33

标签: php

我正在尝试使用php发送邮件。我的邮件转到垃圾邮件,其他一些错误也在邮件中。

我的标题代码是

$header_mail="select content from mail_header where id='1'";
$header_mail2=mysql_query($header_mail);
$fet=mysql_fetch_array($header_mail2);

$content= htmlentities($fet['content']);

$Headers = "From:$content\r\n" . 
"Reply-To:$content\r\n" . 
"Content-type: text/html; charset=UTF-8 \r\n"; 
$Headers.= "MIME-version: 1.0\n";
$Headers.= "Content-type: text/html; charset= iso-8859-1\n";

$ content中的数据是zamisoft<zamisoft.com>,但我收到的邮件与

一样
from:    Zamisoft&lt

回复:Zamisoft&amp; lt,     zamisoft@gmail.com& GT

我在邮件中收到了这些邮件

“请注意此消息。许多人将类似的消息标记为网络钓鱼诈骗,因此这可能包含不安全的内容。了解详情”

邮件会发送垃圾邮件,错误发生在邮件的标题部分。

有谁帮我解决这些问题?

2 个答案:

答案 0 :(得分:1)

问题很简单,PHP mail()函数没有使用配置良好的 SMTP服务器

现在,电子邮件客户端和服务器对发送服务器的电子邮件执行大量检查,例如反向DNS查找,灰名单和whatevs。使用php mail()函数,所有这些测试都将失败。如果您使用动态IP,则更糟糕。

使用PHPMailer-Class并将其配置为使用smtp-auth以及配置良好的专用 SMTP服务器(本地或远程服务器)和您的问题走了。

https://github.com/PHPMailer/PHPMailer

答案 1 :(得分:0)

htmlentities()移除$content= htmlentities($fet['content']);,然后尝试!

由于您已经设置了内容类型字符编码,因此浏览器会正确读取数组$fet['content']的内容!

htmlentities()将html标记转换为htmlentities(例如。<&lt;),这就是你所面对的!!

尝试一下,如果问题仍然存在,请告知我们

删除行&#34;内容类型:text / html; charset = UTF-8 \ r \ n&#34 ;;因为你已经在标题的最后一行定义了标题。

添加$ Headers。=&#39; X-Mailer:PHP /&#39; 。 phpversion()&#34; \ r \ n&#34 ;;在代码的最后一行。

它告诉我正在使用哪个版本的php!

此外,电子邮件地址也应该是有效的!