PHP HTML电子邮件最终出现在垃圾文件夹中

时间:2016-11-26 12:46:30

标签: php email phpmailer

我现在完全失去了。

我对这个问题进行了大量研究。 一些背景知识:我使用PHPMailer通过PHP发送HTML电子邮件。问题是,它总是在垃圾文件夹中结束。

$message = "<html><u>Hello there</u></html>";
date_default_timezone_set('Etc/UTC');
$mail = new PHPMailer();

 //even tried setting up SMTP server 
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "myGmailEmail@gmail.com";
$mail->Password = "my gmail password";
$mail->SMTPDebug = 2;
$mail->Port = 587;
$mail->SMTPSecure = 'tls';

$mail->setFrom('noreply@promisingwebsite.com', 'No-reply');
$mail->addReplyTo('noreply@promisingwebsite.com', 'No-reply');
$mail->AddAddress($to);
$mail->IsHTML(true);  
$mail->Subject  =  $subject;
$mail->MsgHTML($message);
if($mail->send()) resp(true,$code);
else resp(false,"error (".$mail->ErrorInfo.")");

当我不使用SMTP时,它会发送最终在垃圾文件夹中的电子邮件。当我使用它时,我无法进行身份验证:

    2016-11-26 12:44:16 CLIENT -> SERVER: EHLO 185.80.130.141
2016-11-26 12:44:16 CLIENT -> SERVER: STARTTLS
2016-11-26 12:44:16 CLIENT -> SERVER: EHLO 185.80.130.141
2016-11-26 12:44:16 CLIENT -> SERVER: AUTH LOGIN
2016-11-26 12:44:16 CLIENT -> SERVER: bmVkdWthczE3QGdtYWlsLmNvbQ==
2016-11-26 12:44:17 CLIENT -> SERVER: bmVkdWxpdWthczEyMw==
2016-11-26 12:44:17 SMTP ERROR: Password command failed: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbtT
                                      534-5.7.14 KhjtVSQhqL8MciQEtofR0fc36pPSF1zUxFnNZCay9DTcpxzjY0-elaKn8oWgt_-7bXpCSU
                                      534-5.7.14 L0sarBbOFwjA4l3lN_VmEDi1Pej1C4gHpfDiFnpC87Md82FK_qZe2B6J1olxCWnmQUQlWE
                                      534-5.7.14 eIwqtsXjE3xia_Y-lJnGZu7uQeQ7L_4QYj452Xxllf6GjA9Pz-cJsanxzXl7NTqRKEhcGM
                                      534-5.7.14 hTxqiKtVHXjFtkWZ_fGs5O960iNwk> Please log in via your web browser and
                                      534-5.7.14 then try again.
                                      534-5.7.14  Learn more at
                                      534 5.7.14  https://support.google.com/mail/answer/78754 e102sm10342631lfi.25 - gsmtp
2016-11-26 12:44:17 SMTP Error: Could not authenticate.
2016-11-26 12:44:17 CLIENT -> SERVER: QUIT
2016-11-26 12:44:17 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

我不知道该怎么做。我运行垃圾邮件检查但是他们返回了一些负面结果(电子邮件不归类为垃圾邮件)。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

原因是您尝试通过Google的SMTP服务器发送电子邮件,但将reply tofrom电子邮件地址设置为与其来自的gmail帐户不同的电子邮件地址。当事情不匹配时,垃圾邮件过滤器会讨厌它。

如果您更改了来自电子邮件地址的回复,请更改为myGmailEmail@gmail.com,我认为它不会被标记为垃圾邮件。

如果您的主机为您的域提供电子邮件,那么最好的方法就是使用该SMTP服务器,而不是Google。