以下发件人地址在未连接的情况下调用 Mail() 失败

The following From address failed Called Mail() without being connected

大家好,我收到这个错误:

The following From address failed: username_from@gmail.com : Called Mail() without being connected

<?php
require("PHPMailer/class.phpmailer.php");

$msg = 'hello world!';

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = 'username@gmail.com';
$mail->Password = 'password';
$mail->SMTPSecure = 'ssl';
$mail->From = 'username_from@gmail.com';
$mail->FromName = 'My name';
$mail->AddAddress('other_user@gmail.com', '');
$mail->WordWrap = 50;
$mail->IsHTML(true);
$mail->Subject = 'hello';
$mail->Body = $msg;

if(!$mail->Send()){
    echo "Mailer Error: " . $mail->ErrorInfo;
}
else{
    echo "Message has been sent";
}
?>

我该如何解决?谢谢!我在 PHP 中使用 Gmail 邮件服务器从本地主机 运行 XAMPP 发送电子邮件。

可能的错误原因

  • 您必须编辑您的 gmail 帐户权限。正在尝试启用 'Access for less secure apps' 安全设置。

  • 可能是,您使用的是旧版本的 PHPMailer - 更新它。

  • 不要将 ssl/465 用于 gmail;使用tls/587. 看看PHPMailer自带的gmail example code.

  • 如果您只是添加一个地址,则无需调用 singleTo。
  • 尝试将 Host 设置为 smtp.gmail.com
  • 你可以添加$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only so you can see some debug statements?