首页 >后端开发 >php教程 >为什么从 PHP 通过 Gmail 的 SMTP 服务器发送电子邮件时会出现身份验证失败?

为什么从 PHP 通过 Gmail 的 SMTP 服务器发送电子邮件时会出现身份验证失败?

Patricia Arquette
Patricia Arquette原创
2024-12-20 00:23:08367浏览

Why Am I Getting an Authentication Failure When Sending Emails via Gmail's SMTP Server from PHP?

无法通过 GMail 的 SMTP 服务器发送电子邮件?

当尝试从 PHP 页面通过 GMail 的 SMTP 服务器发送电子邮件时,您可能会遇到错误:

身份验证失败 [SMTP:SMTP 服务器不支持身份验证(代码: 250,响应:mx.google.com 为您服务,[98.117.99.235] SIZE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING)]

当 PHP 代码缺乏正确的 SSL 设置时,通常会出现此错误。以下是纠正该问题的方法:

更正的 PHP 代码:

<br>// Pear Mail Library<br>require_once "Mail.php" ;<p>$来自 = '';<br>$to = '';<br>$subject = '嗨!';<br>$body = "嗨,nn 你好吗?你?”;</p><p>$headers = array(</p><pre class="brush:php;toolbar:false">'From' => $from,
'To' => $to,
'Subject' => $subject

);

$smtp = Mail::factory('smtp', array(

    'host' => 'ssl://smtp.gmail.com',
    'port' => '465',
    'auth' => true,
    'username' => '[email&#160;protected]',
    'password' => 'passwordxxx'
));

$mail = $smtp->;发送($to, $headers, $body);

如果(PEAR::isError($mail)) {

echo('<p>' . $mail->getMessage() . '</p>');

} else {

echo('<p>Message successfully sent!</p>');

}

主要区别:

  • 主机现在包括ssl:// 表示安全连接。
  • 端口更改为 465,这是标准 SSL 端口。

通过实施这些更改,您将确保正确的 SSL 加密并避免身份验证失败错误。

以上是为什么从 PHP 通过 Gmail 的 SMTP 服务器发送电子邮件时会出现身份验证失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn