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

Cav*_*ava 1 php email smtp phpmailer

大家好,我收到此错误:

以下发件人地址失败: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";
}
?>
Run Code Online (Sandbox Code Playgroud)

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

Vas*_*ikh 6

可能的错误原因

  • 您必须编辑您的 Gmail 帐户权限。尝试启用“访问不太安全的应用程序”安全设置。

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

  • 不要将 ssl/465 用于 gmail;使用 tls/587。查看PHPMailer 提供的gmail 示例代码

  • 如果您只添加一个地址,则无需调用 singleTo。
  • 尝试将主机设置为 smtp.gmail.com
  • 你可以添加 $mail->SMTPDebug = 1; // 调试:1 = 错误和消息,2 = 仅消息以便您可以看到一些调试语句?