我刚开始在我的网站上提供用户帐户(大型PR6网站,声誉良好),我注意到注册电子邮件几乎总是发送到接收垃圾邮箱。
到目前为止,我们只发了几封电子邮件,所以它不像我们一直在抨击成千上万。
我使用mail()函数通过PHP发送电子邮件。您可以在下面找到我使用mail()函数发送的标题。
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Domain.com <noreply@mydomain.com>' . "\r\n";
有没有办法或技巧来绕过这些垃圾邮件过滤器?它显然不是我发送的垃圾邮件。注册邮箱包含3个链接。
答案 0 :(得分:6)
有很多事情可能导致电子邮件被标记为垃圾邮件。解决方案有两个:一方面你应该使用一个好的smtp服务器(可传递性),然后你应该正确地形成你的电子邮件。 (使用mail()的艰巨任务。)
你应该使用像PHPMailer这样的东西。它是一个用于发送电子邮件的PHP库,并且正确地执行它们,因此电子邮件更有可能正确到达。
http://phpmailer.worxware.com/
电子邮件递送可能很令人头疼,但我可以推荐http://www.sendgrid.com - 您基本上将它们设置为phpmailer的smtp服务器并使用他们的外发邮件服务器..他们是电子邮件传送专家,你将拥有一个更容易的时间。特别是当你开始发送大量的电子邮件时。
来自phpmailer网站的电子邮件示例:
<?php
require_once('../class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Host = "smtp.sendgrid.net"; // sets the SMTP server to sendgrid's server
$mail->Port = 25; // set the SMTP port for the GMAIL server
$mail->Username = "emailuser@host.com"; // Sendgrid user
$mail->Password = "yourpassword"; // Sendgrid passw.
$mail->SetFrom('name@yourdomain.com', 'First Last');
$mail->AddReplyTo("name@yourdomain.com","First Last");
$mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$address = "whoto@otherdomain.com";
$mail->AddAddress($address, "John Doe");
echo !$mail->Send() ? "Mailer Error: " . $mail->ErrorInfo : "Message sent!";
?>
我想说我在任何方面都不隶属于Sendgrid。我只是他们服务的忠实粉丝。我在web开发商店里与mail()函数,smtp服务器,邮件队列和服务进行了多年的战斗,我不希望这个命运成为我最大的敌人。节省一些时间和担忧。
干杯...
答案 1 :(得分:0)
你可能已经这样做了,但我要检查的一件事是你在电子邮件中没有关键词,这对垃圾邮件过滤器来说是个大红旗。显然,“注册”是必要的,但要避免使用经常出现在真实垃圾邮件中的其他词语。我确信垃圾邮件过滤器对电子邮件中的链接数量也很敏感,因此从3减去它可能也是一个好主意。
答案 2 :(得分:0)
来自http://pauldowman.com/2008/02/17/smtp-mail-from-ec2-web-server-setup/
的一些提示如果您使用第三方smtp中继,例如authsmtp,则应将spf记录添加到DNS中。
spfwizard.com。
不要欺骗From字段
你应该只发送邮件 somebody@yourdomain.com。如果你试着 发送邮件 例如,somebody @ pauldowman.com, 接收器会看到 pauldowman.com有SPF记录,和 它没有授权你的邮件 服务器。然后进入垃圾邮件文件夹 去。
要解决此问题,您可以发送 像noreply@yourdomain.com这样的东西, 并将Reply-To标头设置为 somebody@pauldowman.com。你甚至可以 在from字段中设置名称,用于 例如:“Paul Dowman通过yoursite” 。答复 标题将确保最多 人们的回复是正确的 地址,但少数将不可避免地结束 在noreply@yourdomain.com,所以这是 建立一个可能是个好主意 在该地址的自动回复,或在 至少要确保消息反弹 用户最终意识到了 错误。
我第二次使用PHPMailer()。照顾好一堆小东西。