LECMS怎么配置SMTP邮件发送

liulian
liulian 初级会员超兽战士
发布于 2026-10-08 12:38 ·1 浏览 ·0 回复

照着做完,你就能让 LECMS 通过第三方邮箱(QQ 邮箱、163、企业邮箱)正常发出注册验证、找回密码、投稿通知这类邮件,而不是卡在 mail() 函数发不出去。

LECMS 是基于 ThinkPHP 的 PHP 建站程序,默认走的是 PHP 自带的 mail() 函数,在没有本地邮件服务的服务器上基本发不出去,所以必须改成 SMTP 方式走外部邮箱服务器。下面按步骤来。

第一步:先拿到一组 SMTP 账号信息

这一步要拿到 5 个参数:SMTP 服务器地址、端口、加密方式、发件邮箱、授权码。没有它们,后台填什么都白搭。

以 QQ 邮箱为例:登录网页版邮箱 → 顶部「设置」→「账户」→ 下拉到「POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务」→ 把「IMAP/SMTP服务」后面的开关打开 → 按提示用绑定手机发送验证短信 → 页面会给出一串 16 位授权码,复制保存,它只显示一次。

对应参数:

  • SMTP 服务器:smtp.qq.com
  • 端口:465(SSL)或 587(STARTTLS)
  • 加密方式:SSL
  • 发件邮箱:你的完整 QQ 邮箱地址
  • 密码:填那串 16 位授权码,不是 QQ 登录密码

163 邮箱同理,服务器是 smtp.163.com,端口 465(SSL)或 994。

注意:授权码不要填成邮箱登录密码,这是新手第一大坑,报错一定是 535 Authentication failed。

第二步:登录后台找到邮件配置入口

这一步要定位后台的邮件设置页面。浏览器打开 http://你的域名/admin.php,输入管理员账号密码登录。

在左侧菜单里依次点:系统 → 系统设置,在打开的页面顶部标签页里找「邮件设置」或「邮箱配置」这一项。部分 LECMS 版本放在「扩展 → 邮件配置」下。如果标签页太多找不到,直接在后台顶部搜索框输入「邮件」回车。

注意:不同汉化版/二次开发版的菜单名会有差异,但关键词一定是「邮件」「SMTP」「邮箱」三者之一。如果你的后台确实没有这个页面,直接跳到第五步。

第三步:按表单逐项填写

这一步把所有参数填进去并保存。典型字段对照如下:

字段名填什么
邮件发送方式 / 驱动选择 SMTP
SMTP 服务器smtp.qq.com
SMTP 端口465
加密方式 / SMTP 安全协议SSL
发件人邮箱 / SMTP 用户名xxx@qq.com
发件人密码 / SMTP 密码第一步拿到的 16 位授权码
发件人名称你的站点名,收件人看到的名字
测试收件邮箱你自己的另一个邮箱

填完点页面底部的「提交」或「保存」按钮。

注意:端口和加密方式必须配对,465 配 SSL、587 配 STARTTLS,错配会连接超时。

第四步:点「发送测试邮件」验证

这一步确认配置真的通了。在同一个页面找「发送测试邮件」按钮,点一下,然后去测试收件箱查看,同时检查垃圾邮件文件夹。

收到邮件说明配置成功,可以开始用注册验证、密码找回等功能了。收不到就进第五步。

第五步:后台没入口或测试失败时,改配置文件

这一步用代码方式兜底。用 FTP 或面板文件管理器进入站点根目录,找 config/ 或 application/database.php 同级的配置文件,LECMS 常见位置是 config/email.php 或 application/extra/email.php,里面通常是这样的数组:

return [
    'driver'     => 'smtp',
    'host'       => 'smtp.qq.com',
    'port'       => 465,
    'encryption' => 'ssl',
    'username'   => 'xxx@qq.com',
    'password'   => '你的16位授权码',
    'from'       => ['xxx@qq.com', '站点名称'],
];

没有这个文件就在根目录新建一个 smtp_test.php 做连通性测试:

<?php
$fp = fsockopen('ssl://smtp.qq.com', 465, $errno, $errstr, 10);
echo $fp ? '端口连通正常' : "连接失败: $errstr ($errno)";

浏览器访问 http://你的域名/smtp_test.php,显示「端口连通正常」说明服务器到邮箱的链路没问题,问题出在账号密码;显示失败就是服务器把端口封了,换 587 试试。

注意:测试文件用完立刻删掉,避免暴露服务器信息。

第六步:几个高频报错的对应处理

  • 535 Authentication failed:授权码错了,或者没开启 SMTP 服务,重新生成一次授权码。
  • Connection timed out:云服务器(阿里云、腾讯云)默认封禁 25 端口,把端口改成 465。
  • SSL operation failed:PHP 的 openssl 扩展没开。宝塔面板在「软件商店 → PHP 7.x → 设置 → 安装扩展」里勾选 openssl 后重启 PHP。
  • 邮件进垃圾箱:给自己的域名加 SPF 记录,在 DNS 解析里添加一条 TXT,值为 v=spf1 include:qq.com ~all(用企业邮箱就换成对应厂商的 include 值)。

小结

  • 核心是拿到邮箱的 16 位授权码,不是登录密码。
  • 端口和加密方式必须配对:465 配 SSL,587 配 STARTTLS。
  • 后台路径是「系统 → 系统设置 → 邮件设置」,没有就走配置文件。
  • 云服务器基本都封 25 端口,无脑选 465 最稳。
  • 测完记得删掉临时测试文件,收不到邮件先翻垃圾箱。
版权声明:本文来自 GJ站长论坛《LECMS怎么配置SMTP邮件发送》
原文链接:https://www.gj0.com/thread-955.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~