PHPmailer代码非常适合发送到非谷歌应用程序的电子邮件地址,但谷歌应用程序地址失败

时间:2014-11-12 22:06:44

标签: php email phpmailer google-apps

我有一个独特的问题(在我试图提出这个问题之前,我对SO进行了全面的搜索。 当我使用PHPMailer发送到gmail(或hotmail等)地址时,它工作得很好。只要我将其更改为发送到Google Apps电子邮件地址,我就不会收到任何错误消息,而是告诉我它已成功但没有电子邮件通过。

以前有人见过这个问题吗?我的代码是否缺少非常特别的内容,使其成为通过Google Apps服务器的有效电子邮件(不确定我是否朝着正确的方向前进)。谢谢!

开始我的代码:

<?php

require("/PHPMailer_5.2.0/class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Port = 465;
$mail->Host = 'smtp.gmail.com'; // "ssl://smtp.gmail.com" didn't worked
$mail->IsHTML(true); // if you are going to send HTML formatted emails
$mail->Mailer = 'mail';
$mail->SMTPSecure = 'ssl';

$mail->SMTPAuth = true;
$mail->Username = "******@dynamicsafetyfirst.com";
$mail->Password = "*******";

$mail->From     = $_POST['email'];
$mail->AddAddress("someuser@gmail.com");

$mail->Subject  = "First PHPMailer Message";
$mail->WordWrap = 50;
$mail->FromName = $_POST['name'];
$mail->Subject = $_POST['enquiry'];
$mail->Body = $_POST['comments']. "--By--".' name: '. $_POST['name']."--". 'email: ' .$_POST['email']; 

if(!$mail->Send()) {
  echo 'Message was not sent.';
  echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
  echo 'Message has been sent.';
}
?>

结束代码。

1 个答案:

答案 0 :(得分:0)

你做了很多努力做错事。首先,你要使用相当旧的PHPMailer版本 - 去获取最新的from github。接下来,您的代码存在许多问题,因此请使用gmail example provided重新开始。在端口587上使用tls。不要设置Mailer - 您已经调用isSMTP(),并且稍后覆盖Mailer会遇到麻烦。

要查看设置$mail->SMTPDebug = 3;的内容,它会显示整个SMTP会话。那时你可能会得到一些关于你的信息发生了什么的线索。