我正在尝试使用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<
回复:Zamisoft&amp; lt, zamisoft@gmail.com& GT
我在邮件中收到了这些邮件
“请注意此消息。许多人将类似的消息标记为网络钓鱼诈骗,因此这可能包含不安全的内容。了解详情”
邮件会发送垃圾邮件,错误发生在邮件的标题部分。
有谁帮我解决这些问题?
答案 0 :(得分:1)
问题很简单,PHP mail()
函数没有使用配置良好的 SMTP服务器。
现在,电子邮件客户端和服务器对发送服务器的电子邮件执行大量检查,例如反向DNS查找,灰名单和whatevs。使用php mail()
函数,所有这些测试都将失败。如果您使用动态IP,则更糟糕。
使用PHPMailer-Class
并将其配置为使用smtp-auth
以及配置良好的专用 SMTP服务器(本地或远程服务器)和您的问题走了。
答案 1 :(得分:0)
从htmlentities()
移除$content= htmlentities($fet['content']);
,然后尝试!
由于您已经设置了内容类型和字符编码,因此浏览器会正确读取数组$fet['content']
的内容!
htmlentities()
将html标记转换为htmlentities(例如。<
到<
),这就是你所面对的!!
尝试一下,如果问题仍然存在,请告知我们
删除行&#34;内容类型:text / html; charset = UTF-8 \ r \ n&#34 ;;因为你已经在标题的最后一行定义了标题。
添加$ Headers。=&#39; X-Mailer:PHP /&#39; 。 phpversion()&#34; \ r \ n&#34 ;;在代码的最后一行。
它告诉我正在使用哪个版本的php!
此外,电子邮件地址也应该是有效的!