我正在使用PHPMailer为社交网络中新注册的用户发送确认电子邮件。但我发现他们中的大多数都已经进入了用户的垃圾邮件列表。 (Hotmail和Yahoo)。怎么避免这个?
这是我的剧本
$mail=new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = mSMTPAuth();
$mail->SMTPSecure = mSMTPSecure();
$mail->Host = mHost();
$mail->Port = mPort();
$mail->Username = mUsername();
$mail->Password = mPassword();
$mail->From = mFrom();
$mail->FromName = "SiteName";
$mail->Subject = "SiteName New Account Activation";
$mail->IsHTML(true);
$mail->WordWrap = 50;
$mail->Body = "<h2>Welcome to " .$sitename. " " .$username. "! </h2><br><br>";
$mail->Body .= "Please click on the link below to verify your email address:<br><br>";
$mail->Body .= "<a href='".$base. "verify.php?a=" .$gen_key."'>".$base. "verify.php?a=" .$gen_key."</a>";
$mail->Body .= "<br><br>Regards<br>";
$mail->AltBody = "Welcome to " .$sitename. " " .$username. "!\n\nTo verify your email address, please click on the link below:\n\n".$base. "verify.php?a=" .$gen_key;
$mail->AddAddress($email);
$mail->Send();
$mail->ClearAddresses();
答案 0 :(得分:4)
为了最大限度地提高您的电子邮件抵达的可能性,您需要检查三件事:
详细信息:
http://www.codinghorror.com/blog/2010/04/so-youd-like-to-send-some-email-through-code.html
答案 1 :(得分:3)
你无能为力。大多数邮件提供商都有常见IP地址,主机名和其他数据的列表,这些数据通常被标记为垃圾邮件,如果您的电子邮件符合条件,则会自动过滤掉。您所能做的就是告诉访问者在注册之前将您的电子邮件地址添加到他们的允许列表中,以便电子邮件进入他们的收件箱。
老实说,不要担心。如果他们看到您的电子邮件经常被标记为“非垃圾邮件”,那么他们最终会为其添加例外。如果他们没有像其他网站那样看到电子邮件,请告诉用户检查他们的垃圾邮件文件夹。通常,如果他们在该文件夹中将其标记为“非垃圾邮件”,则会自动为该地址添加例外,因此您发送的任何其他电子邮件都会在收件箱中结束。
答案 2 :(得分:3)
您是否有发送确认电子邮件的服务器的反向DNS条目?
如果没有,则可能是rDNS issue。如果根据rDNS发送主机的IP和名称不匹配,某些站点更有可能将消息标记为垃圾邮件。
否则,您可能会尝试在雅虎,Hotmail和G-mail等主要电子邮件网站上向您自己的帐户发送确认电子邮件,然后调整措辞,直到它通过垃圾邮件过滤器。
答案 3 :(得分:0)
简短的HTML邮件可能会在垃圾邮件列表中上升。
答案 4 :(得分:0)
我发现标题中“确认”一词的任何变体都会出现在我的垃圾邮件桶中。我发现其他一些词也是这样做的:“购买”,“快点”,“订单”,“讨价还价”和“迫在眉睫”。
在所有电子邮件中可能都不是这样,但它发生在我的电子邮件中。可能是因为这些单词出现在我标记为跨度的大多数电子邮件中。它也可能是本地sysop制作过滤器并将其分发给我们所有人。
答案 5 :(得分:0)
您可以尝试使用sendGrid apis这会有所帮助,但是我认为这是值得的。它们支持大多数流行语言:Nodejs,PHP,Java,....