繁体   English   中英

帮助,注册电子邮件进入垃圾邮件收件箱

[英]Help, Registration emails go to spam inbox

我刚开始在我的网站(大型PR6网站,具有良好声誉)上提供用户帐户,我注意到注册电子邮件几乎总是转到收件人的垃圾邮件箱。

到目前为止,我们只发送了几封电子邮件,所以这与我们已经扔出数千封邮件不同。

我通过PHP使用mail()函数发送电子邮件。 在下面,您可以找到我通过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个链接。

有很多事情可以导致电子邮件被标记为垃圾邮件。 解决方案是双重的:一方面,您应该使用一台性能良好的smtp服务器(可传递性),然后正确地编写电子邮件。 (使用mail()的艰巨任务。)

使用PHP正确发送电子邮件

您应该真正使用类似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服务器,邮件队列和服务工作了很多年,但我不希望这对我最大的敌人不利。 节省一些时间和后顾之忧。

干杯...

您可能已经做到了,但是我要检查的一件事是您的电子邮件中没有关键词,这对垃圾邮件过滤器来说是一个很大的危险信号。 显然,“注册”是必要的,但请避免使用其他经常出现在实际垃圾邮件中的单词。 我敢肯定,垃圾邮件过滤器也会对电子邮件中的链接数量敏感,因此将其从3个减少为一个好主意。

来自以下几个技巧: http : //pauldowman.com/2008/02/17/smtp-mail-from-ec2-web-server-setup/

如果您使用的是第三方SMTP中继(例如authsmtp),则应将spf记录添加到DNS中。

spfwizard.com。

不要欺骗发件人字段

您应该只从somebody@yourdomain.com发送邮件。 例如,如果您尝试从somebody@pauldowman.com发送邮件,则收件人将看到pauldowman.com具有SPF记录,并且未授权您的邮件服务器。 然后进入垃圾邮件文件夹。

要解决此问题,您可以从noreply@yourdomain.com之类的地址发送邮件,并将Reply-To标头设置为somebody@pauldowman.com。 您甚至可以在“发件人”字段中设置名称,例如:“通过您的站点的Paul Dowman”。 Reply-To标头将确保大多数人的答复都发送到正确的地址,但是有少数将不可避免地以noreply@yourdomain.com结尾,因此在该地址处设置自动回复器或至少使确保消息退回,以便用户最终意识到错误。

我第二次使用PHPMailer()。 照顾一堆小东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM