【问题标题】:PHPMailer sending e-mails with the warning: This message may not have been sent by: foo@gmail.com Learn more Report phishingPHPMailer 发送带有警告的电子邮件:此邮件可能不是由 foo@gmail.com 发送的 了解更多 报告网络钓鱼
【发布时间】:2012-07-28 10:26:30
【问题描述】:

我正在使用 PHPMailer 从我的网站发送自动电子邮件,在测试时,我注意到 php mailer 发送的所有电子邮件都在收件人端生成以下警告:

此邮件可能不是由 foo@gmail.com 发送的 了解更多 报告网络钓鱼

我想知道是否有办法避免这种情况?

PHP 邮件程序代码:

//mail functions
require("mailer/class.phpmailer.php");
require("mailer/class.smtp.php");
require("mailer/class.pop3.php");

$mail = new PHPMailer();
$mail->IsSMTP();  
$mail->Host = "relay-hosting.secureserver.net";
$mail->Port = 25;  
$mail->IsHTML(true);
$mail->Username = "foo@gmail.com";  // SMTP username
$mail->Password = "pass"; // SMTP password

$mail->From = "foo@gmail.com";
$mail->FromName = "FOO";
$mail->AddAddress("fOO@gmail.com", "WIDB");
$mail->AddReplyTo("foo@gmail.com");
//$mail->AddAddress("foo@gmail.com");                  // name is optional

$mail->WordWrap = 50;                                 // set word wrap to 50 characters
//$mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    // optional name
$mail->IsHTML(true);                                  // set email format to HTML

$mail->Subject = 'Foo - Transaction Receipt';
$mail->Body    = $message;
$mail->AltBody = "nothing";

//send mail
$mail->Send();

我正在使用 GMail 并且我启用了 SMTP...

【问题讨论】:

  • 这不是来自您的 PHP 服务器,而是来自电子邮件收件人的电子邮件主机,因为您的服务器的 IP 地址与任何 google 的(即您的 SMTP 服务器)都不匹配。
  • 感谢您的回复!我不确定我是否理解这个问题:/ 有没有办法避免这种情况?
  • 确保您发送邮件的服务器与假定的“发件人”地址相同。不要使用来自 google.com 的“发件人”地址。如果您的服务器设置了 URL,请使用该 URL。您的电子邮件主机正在尝试防止有时使用地址欺骗的网络钓鱼攻击。
  • 所以基本上,如果我将 FROM 地址更改为 hotmail 地址,网络钓鱼警告会消失吗?而且我仍然可以提供一个作为 g-mail 地址的回复电子邮件地址,对吗?
  • 嗯,不。这会给您带来同样的问题 - 电子邮件实际来自的地址未托管在任何 gmail 或 hotmail 的服务器上。您仍然会收到反欺骗消息。不过,在您设置正确的电子邮件主机之前,忽略它是安全的。

标签: php email phpmailer


【解决方案1】:

您可以为您的网站设置 google 应用程序并获得一个 Username@yourwebsite.com gmail 帐户(more info here 它是免费的),或者您需要在当前服务器上设置一个电子邮件地址,即用户名@yourwebsite.com 并将其用作 $mail->from 地址。

您的电子邮件收件人收到邮件是因为您告诉 google 从您的服务器发送一封电子邮件,然后您告诉他们邮件来自 gmail,但不是,它来自您的个人服务器。由于发件人地址和您的服务器地址不匹配,他们将其标记为垃圾邮件。这是谷歌防止垃圾邮件的方式,对他们来说,如果你把 $mail->from(YOURMOM@LOL.com) 放在他们那里也是一样的。电子邮件仍会发送,但您的域名与@地址不匹配。

【讨论】:

  • 我正在运行一个滴灌营销项目,其中电子邮件来自单个服务器,并且发送邮件可以来自用户输入的任何电子邮件。是否有任何解决方案,因为无论客户端电子邮件如何,邮件都是从单个 SMPT emial 协议发送的,并得到与问题中提到的相同的错误。
【解决方案2】:

除了遵循上述准则之外,我注意到这里有一些可能对某人有所帮助的东西。

当我发送一封正文“请检查附加的工单”和一个 pdf 附件的电子邮件时,gmail 显示它并带有垃圾邮件警告(在收件箱内)

当我发送一封正文为“您的工单已附加”的电子邮件和相同的 pdf 附件时,gmail 没有显示任何警告。

我正在使用 java api 发送电子邮件

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 2012-10-14
    • 1970-01-01
    • 2018-09-04
    • 1970-01-01
    • 2013-02-18
    • 2015-04-05
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多