使用phpmailer()发送电子邮件时在Gmail帐户中收到警告消息

时间:2015-05-31 10:12:39

标签: php phpmailer

我正在使用phpmailer()从我的网站发送电子邮件。但是当它发送电子邮件时,我看到以下警告信息。

enter image description here

我无法理解它为什么显示以及如何修复此错误消息。谁能跟我说说呢?

以下是我的代码:

<?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!";
  }
  ?>

1 个答案:

答案 0 :(得分:1)

很简单,您可以阅读有关SPF DNS记录的信息。

当您发送和发送电子邮件时,gmail等服务会检查发件人IP是否与电子邮件的域名相同,例如:

  1. 您发送电子邮件“foo@gmail.com”至“bar@hotmail.com”。您的 server ip是1.1.1.1

  2. Hotmail收到来自“foo@gmail.com”的电子邮件,请检查是否有gmail.com ip(2.2.2.2)与服务器(1.1.1.1)相同。答案是不, 所以电子邮件被标记为垃圾邮件。

  3. 为避免您的电子邮件被标记为垃圾邮件,您可以使用 phpmailer使用真正的谷歌帐户并提供phpmailer用户 和密码发送电子邮件。

  4. 我试着在第2点很容易地向你解释这种情况。实际情况有点复杂,但逻辑是一样的,检查ip发送者和来源。阅读SPF(和dkim),因为你在寻找什么:) http://en.wikipedia.org/wiki/Sender_Policy_Framework