phplist 配合 Gmail 通过 SSL 发送邮件的配置方法

白榆
白榆
发布时间:2026-10-14 | 2人浏览过
原创

在使用 phplist 结合 Gmail 发送邮件时,常因 Gmail 要求严格的 SSL 验证而导致连接失败或提示 From 地址错误。解决此问题需要升级 PHPMailer 内核以支持 SSL,并在服务器端正确配置 PHP 的 openssl 扩展。本文将详细说明如何修改 phplist 核心配置文件以及排查常见的 Socket 传输层缺失错误。

问题分析与准备

通常情况下,非 Gmail 邮箱只需按照 phplist 常规方法配置即可。但在使用 Gmail 账号时,由于 Google 强制要求安全连接,直接使用旧版 phplist 自带的 PHPMailer(如 1.73 版本)往往无法建立有效连接。当遇到测试邮件失败且日志显示 "The following From address failed" 或根本无法连接 SMTP 服务器时,通常是因为:

  • 内置的 PHPMailer 版本过低,不支持 SSL/TLS 验证。
  • 服务器环境未启用或正确配置 PHP 的 OpenSSL 扩展。

解决方案的核心思路是:替换新版支持 SSL 的 PHPMailer 文件,并修正 phplist 调用邮件模块时的 SMTP 参数设置,同时确保底层 PHP 环境支持 socket 传输。

操作步骤

第1步:获取新版 PHPMailer

前往 PHPMailer 官方网站下载最新版本(文中示例基于 5.1 及以上版本,该版本已包含对 Gmail SSL 连接的完整支持)。解压后保留核心的 class.phpmailer.php 和 class.smtp.php 文件用于后续覆盖操作。

第2步:配置 PHP 服务器 SSL 环境

在应用代码修改前,必须确保服务器能够通过 SSL 协议连接到远程 SMTP。若尝试连接时报错 “Unable to find the socket transport 'ssl'”,请按以下步骤修复:

  1. 开启扩展:打开 PHP 配置文件 php.ini,找到 ;extension=php_openssl.dll(Windows)或对应的 .so 文件(Linux),移除行首的分号以启用该扩展。
  2. 配置 DLL 文件(仅限 Windows):若仅开启扩展仍报错,需将 PHP 安装目录下的 ssleay32.dll 和 libeay32.dll 复制到系统目录 system32 中;或者修改系统环境变量 PATH,将这两个文件所在的目录添加至系统路径中。
  3. 重启服务:保存配置并重启 Apache/Nginx 服务器使更改生效。

第3步:替换 PHPMailer 核心文件

为了支持新的认证机制,需要用新版的 PHPMailer 类文件覆盖旧文件:
复制新版下载的 class.phpmailer.php 和 class.smtp.php,覆盖 /lists/admin/phpmailer/ 目录下的同名旧文件。

第4步:修改 phplist 邮件模块配置

这是最关键的一步。打开 phplist 的管理邮件类文件 /lists/admin/class.phplistmailer.php,定位到大约第 36 行左右的位置。原代码通常仅设置了认证主机,需要增加 SSL 相关参数:

$this->IsSMTP();            # 新增:明确指定使用 SMTP 协议
$this->SMTPAuth = true;
$this->SMTPSecure = "ssl";   # 新增:启用 SSL 加密
$this->Helo = getConfig("website");
$this->Host = PHPMAILERHOST;
$this->Port = 465            # 新增:Gmail 标准 SSL 端口为 465

重要说明: Gmail 的 SSL 发送默认使用端口 465,而非传统的 25 端口。务必检查此处设置是否正确。

第5步:验证与调试

如果上述配置完成后仍然报错,可以临时开启 PHPMailer 的详细调试日志以查看具体原因。在 IsSMTP(); 之前加入以下代码:

$mail->SMTPDebug = 1;

执行一次测试发送,观察返回的详细错误信息。确认一切正常后,记得移除调试代码以免影响性能。

完成判断

当完成以上步骤并重启服务器后,进入 phplist 后台进行“测试邮件”发送。如果不再出现 "Mailer Error" 或 "Failed to connect to server" 等提示,且收件箱成功收到测试邮件,即表明配置成功。此时可移除调试代码。

以上就是 phplist 配合 Gmail 通过 SSL 发送邮件的详细配置方法,更多关于 phplist 邮件群发系统与 PHP 环境优化的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表