【问题标题】:All E-mails goes to spam folder of GMail, Hotmail and other email providers using phpmailer所有电子邮件都使用 phpmailer 进入 GMail、Hotmail 和其他电子邮件提供商的垃圾邮件文件夹
【发布时间】:2014-06-13 13:00:08
【问题描述】:

最近我在使用PHP Mailer 功能发送电子邮件时遇到问题。我从脚本发送的每封邮件都会直接进入 GMail、HotMail 和其他邮件提供商的垃圾邮件文件夹。

我已经用我的域名、密码等配置了所有东西……

这是我的 PHP 代码:

$message = "
<html>
<head>
  <title>Activation</title>
</head>
<body>
<p>Hello moorthi , </p>
<p>Thank you for Using My Mail Service <b><a href='http://www.mobilebeez.co.in/'>mobileBeez </a></b></p><br/>

<p><b>mobileBeez Technologies<b><br>Chennai, India.</p>
<p><a href='https://www.facebook.com/mobileBeez'>https://www.facebook.com/mobileBeez</a></p>
</body>
</html>
";

$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->Host = "vps.vendarcorporates.com";
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Port = 465; 
$mail->IsHTML(true);
$mail->Username = "info@vendarcorporates.com";
$mail->Password = "***************";
$mail->SetFrom("info@vendarcorporates.com");
$mail->FromName   = "mobile Beez";
$mail->AddReplyTo("info@vendarcorporates.com","mobile Beez");
$mail->Subject = "Activate your Account";
$mail->Body = $message;
$mail->AddAddress("moorthi@gmail.com"); // To Address
if($mail->Send()) {
  print json_encode("SUCCESS");
}
else {
  echo "Mailer Error: " . $mail->ErrorInfo;
}

我得到了类似SUCCESS 的结果,意思是“邮件已成功发送”。但是当我查看我的 GMail 时,我发送的邮件在垃圾邮件文件夹中。

在我的服务器上这是邮件配置

Secure SSL/TLS Settings (Recommended)
Username:   info@vendarcorporates.com
Password:    Use the email account’s password.
Incoming Server:    vps.vendarcorporates.com

                        IMAP Port: 993
                        POP3 Port: 995
Outgoing Server:    vps.vendarcorporates.com

                        SMTP Port: 465
Authentication is required for IMAP, POP3, and SMTP.

【问题讨论】:

  • 您的电子邮件被作为垃圾邮件拦截 - 除了减少“垃圾邮件”之外,没有其他“解决方案”。这不是配置或编码问题 - 这是内容或域问题。
  • 所以显然你说的代码和配置没有错误。我认为我的内容也没有问题,我的域只有你说的问题,对吗?
  • 这取决于您发送的电子邮件的内容和域(或者可能是数量) - 或者其他人是否将其标记为垃圾邮件......很多事情。
  • 在我的服务器“roundcube”webmail 中配置。,使用这个我手动发送邮件(不是从我的脚本)像往常一样在 gmail 撰写邮件。,该邮件也只进入垃圾邮件文件夹。,
  • 这个问题似乎是题外话,因为它是关于诊断电子邮件传递问题,而不是关于编程。

标签: php email phpmailer


【解决方案1】:

最近我在使用PHP Mailer 发送电子邮件时遇到问题 功能。我从脚本中发送的每封邮件都是直截了当的 到 GMail、HotMail 和其他邮件提供商的垃圾邮件文件夹。

该问题与 PHP Mailer、您的代码甚至您的主机无关。但这与您的主机名甚至 IP 地址上的整体外发邮件设置有关。当你这样说时的意思:

我得到了类似SUCCESS 的结果,意思是“邮件成功发送”。 但是当我查看我的 GMail 时,我发送的邮件在垃圾邮件文件夹中。

正确,您的邮件实际上是由服务器发送的。哪个好。但是接收端的邮件服务器不知何故不信任您的主机名或 IP 地址。可以做一些事情来解决这个问题。例如在您的主机名的 DNS 中设置和 SFP 记录,并为发送实际电子邮件的服务器的 IP 地址设置 PTR(反向 DNS)记录。

首先,vendarcorporates.com 是一个实际的域吗?对其进行 ping on this tool that pings globally 显示一致的 Unknown host: vendarcorporates.com 结果。如果是这种情况,并且您尝试使用它发送,那么您的问题就在那里。

就 SPF 记录而言,这是一个 DNS 记录,意思是“发件人策略框架”,基本意思是:作为主机名的所有者,您允许这些其他 IP 地址和主机名在您的主机上发送电子邮件代表。更多details here 特别是这个:

更准确地说,SPFv1 允许域的所有者指定 他们的邮件发送政策,例如他们使用哪些邮件服务器发送 来自他们域的邮件。该技术需要两个方面来发挥 一起:(1) 域所有者在 SPF 中发布此信息 记录在域的 DNS 区域,以及当其他人的邮件服务器 收到声称来自该域的消息,然后 (2) 接收服务器可以检查消息是否符合 域的规定政策。例如,如果消息来自未知 服务器,它可以被认为是假的。

您的设置方法是在您的 DNS 中设置一个 TXT(文本)记录,如下所示:

"v=spf1 ip4:123.45.67.890 ~all"

假设您的域是vendarcorporates.com,这样的 SPF 记录在接收端的工作方式如下:

  • 嘿,我刚收到一封自称是vendarcorporates.com 的人发来的电子邮件!
  • 此消息直接连接的IP地址是否属于vendarcorporates.com
  • 如果是连接到vendarcorporates.com的IP地址,那就好了!
  • 但是这个IP地址是123.45.67.890并且没有连接到vendarcorporates.com。因此,让我们检查一下 SPF 记录。
  • 好的,我正在阅读 SPF 记录,123.45.67.890 被允许为vendarcorporates.com 发送电子邮件,所以让我们通过这条消息。

现在这可能无法完全解决问题。因此,除了 SPF 记录之外,您还需要确保您的服务器具有在某种程度上与您的主机名匹配的有效 PTR(反向 DNS)记录。

与将主机名转换为 IP 地址的 DNS 记录不同,PTR 记录是将 IP 地址转换为主机名的反向 DNS 记录。更多info on Wikipedia.

如何设置 PTR 取决于主机的工作方式。

  • 像 RackSpace 这样的一些放置允许客户自行设置 PTR 记录。
  • Amazon AWS 等其他公司允许您申请 PTR 记录,但需要他们批准。
  • 还有许多其他人根本不会让您自己设置 PTR 记录。您需要联系您的托管服务并要求他们为您设置 PTR 记录。

PTR 记录之所以重要,是因为它是对“这是垃圾邮件吗?”的又一次检查。链。所以它会变成这样:

  • 嘿,我刚收到一封自称是vendarcorporates.com 的人发来的电子邮件!
  • 此消息直接连接的IP地址是否属于vendarcorporates.com

第二步是检查邮件的IP地址是否连接到vendarcorporates.com?那就是PTR记录检查。

我相当有信心拥有您的域名和主机集的 SPF 和 PTR 记录将解决这个问题。

如果您确实拥有 SPF 和 PTR 记录集,但电子邮件最终会成为垃圾邮件?好吧,这意味着您的主机名和/或 IP 地址被列入黑名单。那是你要处理的另一罐蠕虫。您可以使用MX Toolbox 等在线工具检查您的黑名单状态,并按照个别服务建议要求将您删除。但根据您在此列表中排名的严重程度,这可能是一项简单的任务,也可能是一项非常复杂的任务。

总而言之,虽然像 PHP Mailer 这样的工具简化了发送电子邮件的过程,但确保您的电子邮件不被标记为垃圾邮件的整个过程是另一个与编码无关的众所周知的野兽细节。

【讨论】:

    【解决方案2】:

    这里的好处是你的电子邮件正在被 ISP 接收,比如 gmail... 这意味着你的代码(phpMailer)工作正常,所以导致垃圾的问题肯定不是代码,而是其他东西。 如果没有一些细节,比如 ISPS 生成的标题,你试图到达它的收件箱文件夹,我很难帮助你的票,但我可以给你一些可能影响你的电子邮件的例子: 例如,您在电子邮件中使用的内容(html、words、from、Subject), 您用于发送电子邮件的 ips 地址和域的声誉。 此外,您必须验证发送域是否具有授权您的 ips 发送的 spf 记录。

    【讨论】:

      猜你喜欢
      • 2018-10-13
      • 1970-01-01
      • 2017-05-11
      • 2011-06-29
      • 2011-04-17
      • 2011-08-22
      • 2010-11-19
      • 2014-06-25
      相关资源
      最近更新 更多