4

在过去的 2 个小时里,我一直在网上查看是否有其他人遇到过这个问题,而且似乎很多,bot 没有一个答案对我有用。

SMTP -> FROM SERVER:220 mx.google.com ESMTP vq7sm928004oeb.13 
SMTP -> FROM SERVER: 250-mx.google.com at your service, [50.57.114.141] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250 ENHANCEDSTATUSCODES 
SMTP -> FROM SERVER:220 2.0.0 Ready to start TLS 
SMTP -> FROM SERVER: 250-mx.google.com at your service, [50.57.114.141] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 250 ENHANCEDSTATUSCODES 
SMTP -> FROM SERVER:530-5.5.1 Authentication Required. Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 vq7sm928004oeb.13 
SMTP -> ERROR: MAIL not accepted from server: 530-5.5.1 Authentication Required. Learn more at 530 5.5.1 http://support.google.com/mail/bin/answer.py?answer=14257 vq7sm928004oeb.13 
The following From address failed: my@email.com

$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMPTAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.gmail.com";
$mail->Mailer = "smtp";
$mail->Port = 587;
$mail->Username = "my@email.com";
$mail->Password = "password";

我已经尝试了几乎所有 PHPMailer 的设置,但无法弄清楚仍然出了什么问题,我需要处理任何服务器设置吗?

我也尝试了普通的 php mail() 函数,但这也不是发送邮件,尽管在使用 Drupal 表单时它只是发送一封电子邮件。

4

5 回答 5

10

首先,您必须配置正确的服务器来发送电子邮件(参见 gmail.com):

SMTP server address: smtp.gmail.com
SMTP user name: Your full Gmail address (e.g. example@gmail.com)
SMTP password: Your Gmail password
SMTP port: 465 or 587
SMTP TLS/SSL required: yes

在 PHPMailer 中:

$mail->SMTPAuth = true; // There was a syntax error here (SMPTAuth)
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.gmail.com";
$mail->Mailer = "smtp";
$mail->Port = 465;
$mail->Username = "YOU@gmail.com";
$mail->Password = "YOUR_GMAIL_password";
于 2013-01-10T11:36:03.283 回答
5

我的问题是我使用了两步验证。因此,我必须记住为我的 Google 帐户访问授权访问,然后为我用来发送邮件的域分配一个应用程序特定的密码。

于 2013-03-20T02:20:35.770 回答
1

刚刚注意到我在这一行中输入了错误的 SMTP $mail->SMPTAuth = true;,纠正这个问题解决了我的问题。

于 2013-01-11T04:13:22.187 回答
0

在 php 中设置邮件可能非常困难。您是否尝试过使用端口 = 25?

于 2013-01-10T11:23:37.433 回答
0

建议的端口+协议组合对我来说似乎是错误的,因为它与官方的phpMailer-wiki不同:

不要混淆这些模式;端口 587 上的 ssl 或端口 465 上的 tls 将不起作用。

在 PHPMailer 中:

$mail->SMTPAuth = true;
$mail->SMTPSecure = 'tls';
$mail->Host = "smtp.gmail.com";
$mail->Mailer = "smtp";
$mail->Port = 587; //use port 465 when using SMPTSecure = 'ssl'
$mail->Username = "YOU@gmail.com";
$mail->Password = "YOUR_GMAIL_password";
于 2018-07-17T22:44:54.937 回答