PHPMailer 身份验证失败
PHPMailer Authentication unsuccessful
当我尝试在工作中的 windows 服务器 2012 上使用 PHPMailer 来使用 SMTP 发送报告电子邮件时,出现身份验证不成功错误。
我在域中使用服务器管理员帐户。
我非常确定密码的更正。
检查下面的代码:
require '../PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = 'mail.example.com';
$mail->Port = 25;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "username@example.com";
$mail->Password = "yourpassword";
$mail->setFrom('from@example.com', 'First Last');
$mail->addAddress('whoto@example.com', 'John Doe');
$mail->Subject = 'PHPMailer SMTP options test';
$mail->msgHTML($html_message);
我收到以下回复:
SERVER -> CLIENT: 220 exchangeserverhost.com Microsoft ESMTP MAIL Service ready at Tue, 3 Nov 2015 22:19:26 +0300
CLIENT -> SERVER: EHLO exchangeserverhost.com
SERVER -> CLIENT: 250-exchangeserverhost.com Hello
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 2.0.0 SMTP server ready
CLIENT -> SERVER: EHLO exchangeserverhost.com
SERVER -> CLIENT: 250-exchangeserverhost.com Hello
CLIENT -> SERVER: AUTH LOGIN
SERVER -> CLIENT: 334
CLIENT -> SERVER:
SERVER -> CLIENT: 334
CLIENT -> SERVER: ==
SERVER -> CLIENT: 535 5.7.3 Authentication unsuccessful
SMTP ERROR: Password command failed: 535 5.7.3 Authentication unsuccessful
SMTP Error: Could not authenticate.
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 221 2.0.0 Service closing transmission channel
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
问题已通过更改 $mail->SMTPAuth = true 解决;为假。
$mail->SMTPAuth = False;
如果您使用的是 GoDaddy 的 Office 365 并且启用了 2FA,请按照 these 步骤来禁用 2FA。这解决了我的问题,即使 SMTPAuth
是 true
.
它也能正常工作
当我尝试在工作中的 windows 服务器 2012 上使用 PHPMailer 来使用 SMTP 发送报告电子邮件时,出现身份验证不成功错误。
我在域中使用服务器管理员帐户。
我非常确定密码的更正。
检查下面的代码:
require '../PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = 'mail.example.com';
$mail->Port = 25;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "username@example.com";
$mail->Password = "yourpassword";
$mail->setFrom('from@example.com', 'First Last');
$mail->addAddress('whoto@example.com', 'John Doe');
$mail->Subject = 'PHPMailer SMTP options test';
$mail->msgHTML($html_message);
我收到以下回复:
SERVER -> CLIENT: 220 exchangeserverhost.com Microsoft ESMTP MAIL Service ready at Tue, 3 Nov 2015 22:19:26 +0300
CLIENT -> SERVER: EHLO exchangeserverhost.com
SERVER -> CLIENT: 250-exchangeserverhost.com Hello
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 2.0.0 SMTP server ready
CLIENT -> SERVER: EHLO exchangeserverhost.com
SERVER -> CLIENT: 250-exchangeserverhost.com Hello
CLIENT -> SERVER: AUTH LOGIN
SERVER -> CLIENT: 334
CLIENT -> SERVER:
SERVER -> CLIENT: 334
CLIENT -> SERVER: ==
SERVER -> CLIENT: 535 5.7.3 Authentication unsuccessful
SMTP ERROR: Password command failed: 535 5.7.3 Authentication unsuccessful
SMTP Error: Could not authenticate.
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 221 2.0.0 Service closing transmission channel
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
问题已通过更改 $mail->SMTPAuth = true 解决;为假。
$mail->SMTPAuth = False;
如果您使用的是 GoDaddy 的 Office 365 并且启用了 2FA,请按照 these 步骤来禁用 2FA。这解决了我的问题,即使 SMTPAuth
是 true
.