【问题标题】:phpmailer seems not working with gmailphpmailer 似乎不适用于 gmail
【发布时间】:2017-01-27 18:52:04
【问题描述】:

当我尝试使用带有 gmail stp 的 phpmailer 发送电子邮件时,似乎无法正常工作。我已经测试了所有提出的解决方案,但仍然是这个问题:

2017-01-27 19:29:33 Invalid address:  (addAnAddress Reply-To): jgh
2017-01-27 19:29:33 SERVER -> CLIENT: 220-khadija.genious.net ESMTP Exim 4.87 #1 Fri, 27 Jan 2017 19
:29:33 +0000 
                                      220-We do not authorize the use of this system to transport unsolicited
, 
                                      220 and/or bulk e-mail.
2017-01-27 19:29:33 CLIENT -> SERVER: EHLO www.mywebsite.ma
2017-01-27 19:29:33 SERVER -> CLIENT: 250-khadija.genious.net Hello khadija.genious.net [41.77.119.226
]
                                      250-SIZE 52428800
                                      250-8BITMIME
                                      250-PIPELINING
                                      250-AUTH PLAIN LOGIN
                                      250-STARTTLS
                                      250 HELP
2017-01-27 19:29:33 CLIENT -> SERVER: STARTTLS
2017-01-27 19:29:33 SERVER -> CLIENT: 220 TLS go ahead
2017-01-27 19:29:33 CLIENT -> SERVER: EHLO www.mywebsite.ma
2017-01-27 19:29:33 SERVER -> CLIENT: 250-khadija.genious.net Hello khadija.genious.net [41.77.119.226
]
                                      250-SIZE 52428800
                                      250-8BITMIME
                                      250-PIPELINING
                                      250-AUTH PLAIN LOGIN
                                      250 HELP
2017-01-27 19:29:33 CLIENT -> SERVER: AUTH LOGIN
2017-01-27 19:29:33 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2017-01-27 19:29:33 CLIENT -> SERVER: xxx==
2017-01-27 19:29:33 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2017-01-27 19:29:33 CLIENT -> SERVER: xxx
2017-01-27 19:29:35 SERVER -> CLIENT: 535 Incorrect authentication data
2017-01-27 19:29:35 SMTP ERROR: Password command failed: 535 Incorrect authentication data
2017-01-27 19:29:35 SMTP Error: Could not authenticate.
2017-01-27 19:29:35 CLIENT -> SERVER: QUIT
2017-01-27 19:29:35 SERVER -> CLIENT: 221 khadija.genious.net closing connection
2017-01-27 19:29:35 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

这是我的 php 页面:

require 'class.phpmailer.php';
require 'class.smtp.php';

header('Content-Type: application/json');

$mail = new PHPMailer;

$mail->IsSMTP();
$mail->SMTPDebug = 1;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "XXX@gmail.com";
$mail->Password = "XXX";

$email_recipient = 'XXX@gmail.com';

$mail->setFrom($email_recipient);
$mail->addAddress($email_recipient);  
$mail->addReplyTo($_POST['email']);

$mail->isHTML(true);

$mail->Subject = 'Subject';
$mail->Body    = "Message";

if(!$mail->send()) {
    echo json_encode(array('result' => false));
} else {
    echo json_encode(array('result' => true));
}

我已经启用了 lesssecureapps :https://www.google.com/settings/security/lesssecureapps

有什么想法吗?

谢谢

【问题讨论】:

  • 将您的代码基于所提供的 Gmail 示例,并阅读 PHPMailer 故障排除指南。您看不到发生了什么,因为您没有显示服务器输出 (SMTPDebug=2),这几乎是这里大多数答案所建议的第一件事。
  • @Synchro 我在消息中添加了详细调试的返回
  • 所以它不喜欢你的密码?
  • @Synchro 我不太清楚,如果我在 gmail 中手动登录,我确信登录名和密码会很好

标签: smtp gmail phpmailer


【解决方案1】:

您的 ISP 正在将您的 SMTP 连接重定向到他们自己的邮件服务器。您要求连接到smtp.gmail.com,但您最终连接到khadija.genious.net,当然您的凭据在那里不起作用。

我猜你正在运行早于 5.6 的 PHP;这是一个很好的教训,说明为什么不验证 TLS 证书是一个坏主意 - 您实际上已将您的 Gmail 凭据泄露给了 MITM 攻击者。故障排除指南中对此进行了介绍。

【讨论】:

  • Synchro,我已将我的 php 版本更新到 5.6.17,但仍然存在问题,我认为我的主机不允许使用 smtp 或类似的东西?这是消息:pastebin.com/5J9R1kKV
  • 因此,您的 ISP 不仅会重定向您,而且他们这样做的能力也很差。我建议你找一个新的 ISP。
猜你喜欢
  • 1970-01-01
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-26
  • 2020-04-04
  • 2023-04-06
  • 2017-08-01
  • 1970-01-01
相关资源
最近更新 更多