2011-11-10 260 views
-2

可能重复:
PHP: How to avoid a system generated e-mail going into spam?
How to send 100.000 emails weekly?邮件将垃圾邮件

我使用下面的脚本。当我用它来发送邮件

$to = '[email protected]' . ', '; 
$to .= '[email protected]'; 

$subject = 'Green apple'; 

$message = 'Enquiry posted by test '; 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 


$headers .= 'From: Green Apple <[email protected]>' . "\r\n"; 


if (mail($to, $subject, $message, $headers)) 
{ 
    echo "mail send successfully"; 
} 
else 
    echo "mail can't send"; 

这个脚本给一些服务器,邮件是goi纳入垃圾邮件。但在某些服务器上,它会根据需要进入收件箱。

如何防止电子邮件发送垃圾邮件?

+0

尝试添加完整和正确的头文件 - > http://www.transio.com/content/how-pass-spam-filters-php-mail – Rikesh

+2

此问题已被多次询问soooooo。 – animuson

+0

另请参阅[如何每周发送100.000封电子邮件?](http://stackoverflow.com/questions/3905734/how-to-send-100-000-emails-weekly) - 它涉及“垃圾邮件”部分,其中其他事情。 – Piskvor

回答

0

务必将RETURN PATH设置为mail()函数的可选第5个参数。

if (mail($to, $subject, $message, $headers, '[email protected]')) 
1

要防止电子邮件进入垃圾邮件,请勿使用PHP发送邮件。使用SMTP从服务器发送它,您可以使用PHP连接到SMTP并提交消息。然后,您需要在您的服务器上设置SPF记录,并将您的IP地址来自谁的DNS记录反向。如果你做了这三件事,那么你会在白名单上,并且所有的电子邮件都会到达收件箱,假设你不滥用权限并将其放入黑名单。

所以:发送使用SMTP,研究SPF记录和反向DNS。

您将无法做到这一点,除非您有一个专用的IP服务器,用于您从中发送电子邮件的域。

0

发送乌尔大多数邮件收件箱中设置下面标题和不以你的主题行使用像关键字测试

$headers = "From: My site<[email protected]>\r\n"; 
$headers .= "Reply-To: [email protected]\r\n"; 
$headers .= "Return-Path: [email protected]\r\n"; 
$headers .= "X-Mailer: Drupal\n"; 
$headers .= 'MIME-Version: 1.0' . "\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";