最近我在发送带PHP Mailer
功能的电子邮件时遇到问题。我从脚本发送的每封邮件都直接发送到GMail,HotMail和其他邮件提供商的垃圾邮件文件夹。
我已经使用我的域名,密码等配置了everythig ...
这是我的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.
答案 0 :(得分:1)
最近我在使用
PHP Mailer
发送电子邮件时遇到问题 功能。我从我的脚本发送的每封邮件都是直接的 GMail,HotMail和其他邮件提供商上的垃圾邮件文件夹。
该问题与PHP Mailer,您的代码甚至您的主机无关。但它与主机名上的整体外发邮件设置有关。甚至IP地址。这句话的意思是:
我得到的结果如
SUCCESS
,意思是“邮件已成功发送”。 但是当我检查我的GMail时,我发送的邮件是在垃圾邮件文件夹中。
正确,您的邮件实际上是由服务器发送的。这很好。但是接收端的邮件服务器不知道你的主机名或IP地址。可以采取一些措施来解决这个问题。例如在主机名的DNS&amp;中设置和SFP记录。为发送实际电子邮件的服务器的IP地址设置PTR(反向DNS)记录。
第一&amp;最重要的是,vendarcorporates.com
是一个真正的域名?为其执行ping on this tool that pings globally会显示一致的Unknown host: vendarcorporates.com
结果。如果是这样的话&amp;你试图发送,那里有你的问题。
就SPF记录而言,这是一个DNS记录,意思是“发件人政策框架”,其转化基本上意味着:您,作为主机名的所有者,允许这些其他IP地址&amp;主机名代表您发送电子邮件。更多details here具体来说:
更准确地说,SPFv1允许域的所有者指定 他们的邮件发送政策,例如他们用来发送哪些邮件服务器 来自他们域名的邮件。该技术需要双方发挥 在一起:(1)域名所有者在SPF中发布此信息 记录域的DNS区域,以及其他人的邮件服务器 收到一条声称来自该域名的邮件,然后(2) 接收服务器可以检查消息是否符合 域名的政策。例如,如果消息来自未知 服务器,它可以被认为是假的。
您设置此方法的方法是在DNS中设置TXT(文本)记录,如下所示:
"v=spf1 ip4:123.45.67.890 ~all"
假设您的域名为vendarcorporates.com
,这样的SPF记录在接收端的工作方式如下:
vendarcorporates.com
的人发来的电子邮件!vendarcorporates.com
?vendarcorporates.com
的IP地址,那么一切都很好!123.45.67.890
且未与vendarcorporates.com
相关联。那么让我们检查一下SPF记录。123.45.67.890
被允许发送vendarcorporates.com
的电子邮件,所以让我们通过这条消息。现在可能无法彻底解决问题。因此,除了SPF记录之外,您还需要确保您的服务器具有与您的主机名匹配的有效PTR(反向DNS)记录。
与将主机名转换为IP地址的DNS记录不同,PTR记录是反向DNS记录,其中IP地址被转换为主题。更多info on Wikipedia。
如何设置PTR取决于主机的工作方式。
PTR记录重要的原因是它是“这个垃圾邮件?”链中的另一个检查。所以它会像这样发挥:
vendarcorporates.com
的人发来的电子邮件!vendarcorporates.com
?第二步检查邮件的IP地址是否与vendarcorporates.com
连接?那是PTR记录检查。
我非常有信心同时拥有SPF&amp; PTR记录您的域名&amp;主机集将清除此问题。
在外面你有SPF&amp; PTR记录集的电子邮件最终会出现在垃圾邮件中吗?那么,这意味着您的主机名和/或IP地址被列入黑名单。这是你需要处理的其他蠕虫病毒。您可以使用MX Toolbox等在线工具查看黑名单状态。按照个别服务建议请求您将其删除。但是,根据您在此列表中排名的严重程度,这可能是一项简单的任务,也可能是一项非常复杂的任务。
这就是说,虽然像PHP Mailer这样的工具可以简化发送电子邮件的过程,但是确保您的电子邮件没有被标记为垃圾邮件的整个过程是另一个与编码无关的谚语野兽细节。
答案 1 :(得分:-1)
这里的好处是你的电子邮件正被ISP收到,就像gmail一样...... 这意味着你的代码(phpMailer)工作正常,所以问题是垃圾肯定不是代码而是其他东西。 如果没有ISPS生成的标题,你试图访问其收件箱文件夹,我很难协助你的机票,但我可以给你一些可能影响你的电子邮件的例子: 例如,你在电子邮件中使用的内容(html,words,from,Subject), 用于发送电子邮件的ips地址和域名的声誉。 此外,您还必须验证发送域是否具有授权您的ips发送的spf记录。