首页 >后端开发 >php教程 >为什么我通过 Gmail 的 SMTP 服务器发送 PHP 电子邮件失败,如何使用 Pear Mail 库修复它?

为什么我通过 Gmail 的 SMTP 服务器发送 PHP 电子邮件失败,如何使用 Pear Mail 库修复它?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-21 09:51:10859浏览

Why is my PHP email sent via Gmail's SMTP server failing, and how can I fix it using the Pear Mail library?

从 PHP 使用 GMail 的 SMTP 服务器发送电子邮件

问题:
尝试使用以下方式发送电子邮件时从PHP页面GMail的SMTP服务器出现错误,提示身份验证失败SMTP。

解决方案:

提供的代码利用了 Pear Mail Library,需要对 GMail 的 SMTP 进行调整:

  1. 将协议设置为 SSL: 修改主机行以在前面包含 'ssl://' 'smtp.gmail.com'。
  2. 使用端口 465 进行 SSL:将端口号更改为“465”。
  3. 确保正确的用户名和密码: 使用完整的电子邮件地址作为用户名和关联的

更新的代码:

require_once "Mail.php";

$from = '<[email&#160;protected]>';
$to = '<[email&#160;protected]>';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";

$headers = array(
    '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->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo('<p>' . $mail->getMessage() . '</p>');
} else {
    echo('<p>Message successfully sent!</p>');
}

通过合并这些更改,代码现在应该可以从 PHP 页面通过 GMail 的 SMTP 服务器成功发送电子邮件。

以上是为什么我通过 Gmail 的 SMTP 服务器发送 PHP 电子邮件失败,如何使用 Pear Mail 库修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

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