【发布时间】:2015-10-14 04:32:23
【问题描述】:
我正在尝试使用 PHPMailer 从 XAMPP 上的本地虚拟主机发送电子邮件,代码如下。我在 php.ini 中启用了 extension=php_openssl.dll,但我仍然收到以下错误消息。有人知道为什么吗?
require_once 'PHPMailerAutoload.php';
require_once 'class.phpmailer.php';
require_once 'class.smtp.php';
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->SMTPDebug = 2;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->Username = "xxx";
$mail->Password = "xxx";
$email = "xxx@gmail.com";
$name = "Test";
$email_from = "xxx@gmail.com";
$name_from = "Test";
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";
try{
$mail->Send();
echo "Success!";
} catch(Exception $e){
echo "Fail - " . $mail->ErrorInfo;
}
错误输出: SMTP 错误:密码命令失败:534-5.7.14 SMTP 错误:无法验证。
【问题讨论】:
-
您使用的是旧版本的 PHPMailer,并且您的代码基于旧示例。您已指定
SMTPDebug = 2,但尚未提供它生成的输出。 -
您很可能遇到了一个有据可查的 gmail 问题,所以read the troubleshooting guide 告诉您如何处理它。