我正在使用phpmailer()从我的网站发送电子邮件。但是当它发送电子邮件时,我看到以下警告信息。
我无法理解它为什么显示以及如何修复此错误消息。谁能跟我说说呢?
以下是我的代码:
<?php
require_once("mail/PHPMailerAutoload.php");
$mail = new PHPMailer;
$mail->setFrom($email);
$mail->addReplyTo('toemail@gmail.com', 'First Last');
$mail->addAddress('toemail@gmail.com', 'First Last');
$mail->Subject = 'PHPMailer mail() test';
$mail->msgHTML(file_get_contents('mail/contents.html'), dirname(__FILE__));
$mail->AltBody = 'This is a plain-text message body';
$mail->addAttachment('mail/images/phpmailer_mini.png');
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
?>
答案 0 :(得分:1)
很简单,您可以阅读有关SPF DNS记录的信息。
当您发送和发送电子邮件时,gmail等服务会检查发件人IP是否与电子邮件的域名相同,例如:
您发送电子邮件“foo@gmail.com”至“bar@hotmail.com”。您的 server ip是1.1.1.1
Hotmail收到来自“foo@gmail.com”的电子邮件,请检查是否有gmail.com ip(2.2.2.2)与服务器(1.1.1.1)相同。答案是不, 所以电子邮件被标记为垃圾邮件。
为避免您的电子邮件被标记为垃圾邮件,您可以使用 phpmailer使用真正的谷歌帐户并提供phpmailer用户 和密码发送电子邮件。
我试着在第2点很容易地向你解释这种情况。实际情况有点复杂,但逻辑是一样的,检查ip发送者和来源。阅读SPF(和dkim),因为你在寻找什么:) http://en.wikipedia.org/wiki/Sender_Policy_Framework