PHP邮件最终成为gmail垃圾邮件

时间:2012-01-12 13:41:38

标签: php email

一直在网上搜索并尝试了许多不同的解决方案,还有phpmailer和其他库。

我的目标是从我的网站发送确认邮件,它可以使用hotmail和其他服务,但是使用gmail,它最终会成为垃圾邮件。

使用mail()功能,页面托管在one.com上,发送邮件确实存在。

代码:

$mime_boundary = 'Multipart_Boundary_x'.md5(time()).'x';

$headers = "";

$headers .= 'MIME-Version: 1.0'."\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"{$mime_boundary}\"\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";

$body    = "This is a multi-part message in mime format.\n\n";

# Add in plain text version
$body   .= "--{$mime_boundary}\n";
$body   .= "Content-Type: text/plain; charset=\"charset=us-ascii\"\n";
$body   .= "Content-Transfer-Encoding: 7bit\n\n";
$body   .= "To view the message, please use an HTML compatible email viewer!";
$body   .= "\n\n";

# Add in HTML version
$body   .= "--{$mime_boundary}\n";
$body   .= "Content-Type: text/html; charset=\"UTF-8\"\n";
$body   .= "Content-Transfer-Encoding: 7bit\n\n";
$body   .= $this->_message;
$body   .= "\n\n";

$body   .= "--{$mime_boundary}--\n"; #

$headers .= 'From: Sender <sender@example.com>'."\r\n";
$headers .= 'Reply-To: Sender <sender@example.com>'."\r\n";
$headers .= 'Return-Path: Sender <sender@example.com>'."\r\n";

$headers .= 'Message-Id: <' . md5(uniqid(microtime())) . '@example.com>'."\r\n";
$headers .= "X-Sender-IP: ". $_SERVER['SERVER_ADDR'] ."\r\n";
$headers .= 'X-Mailer: PHP/'. phpversion() ."\r\n";

mail($this->_to, '=?UTF-8?B?'. base64_encode("Subject - ". $this->_subject) .'?=', $body, $headers, "-f sender@example.com");

4 个答案:

答案 0 :(得分:2)

这很简单,检查域one.com是否被列入黑名单:

http://www.mxtoolbox.com/SuperTool.aspx?action=blacklist%3a195.47.247.192

答案 1 :(得分:1)

检查您的IP(或服务器的IP)是否未列入黑名单:http://www.dnsbl.info/dnsbl-database-check.php

答案 2 :(得分:0)

我记得在最后一个参数中需要没有空格。

"-fsender@example.com"

而不是

"-f sender@example.com"

答案 3 :(得分:0)

来自@JeffAtwood的 great post 提供了大量有关发送电子邮件时会遇到的警告的信息,以及应该采取哪些措施来降低垃圾邮件结束的可能性/垃圾邮件文件夹。