宝塔默认禁用PHP的mail()函数,需手动删除禁用列表中的mail并确认sendmail_path配置有效、重启PHP服务;SMTP插件失效常因防火墙封端口、缺openssl/sockets扩展或未用邮箱授权码;邮件被拒收多因缺少SPF/DKIM/DMARC记录、使用免费域名或未配PTR反向解析。
PHP 的
函数根本没启用
宝塔默认禁用
,不是配置错,是压根没开。很多用户反复检查 SMTP 设置却忽略这点,导致死循环排查。
实操建议:
立即学习
“
PHP免费学习笔记(深入)
”;
进宝塔 → 网站 → PHP 设置 → 禁用函数列表,删掉
确认
在 PHP 配置里没被注释或设为空(宝塔界面“配置文件”里搜这一行)
重启 PHP 服务(不是重启面板或服务器)
写个测试脚本:
返回
才算过关
WordPress 或 Typecho 用 SMTP 插件但收不到信
插件只负责调用 PHPMailer,底层仍依赖 PHP 的网络能力。常见错误是宝塔防火墙或服务器安全组拦了 SMTP 端口,或者 PHP 没装
扩展。
实操建议:
立即学习
“
PHP免费学习笔记(深入)
”;
检查 PHP 扩展是否启用了
和
(宝塔 → PHP 设置 → 安装扩展)
用
测试端口连通性(如提示 command not found,先
或
)
QQ 邮箱/163 邮箱必须用授权码,不是登录密码;Gmail 要开启两步验证再生成 App Password
插件里 SMTP 主机填
,端口选
(SSL)或
(TLS),别混用
宝塔自带的邮件推送(如登录通知)失败
这是宝塔后端自己的 Python 脚本发信,和网站 PHP 无关。它走的是系统级
或直接 SMTP,但默认没配,也不会报明显错误。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
实操建议:
立即学习
“
PHP免费学习笔记(深入)
”;
进宝塔 → 设置 → 邮件配置,类型选“SMTP”,填对邮箱、授权码、主机和端口
测试按钮经常卡住或无响应?手动执行命令看报错:
如果提示
,大概率是服务商屏蔽了 25 端口,必须换 465/587
阿里云/腾讯云新购服务器默认封 25 端口,且不开放解封,别在这上面浪费时间
发信延迟高或被当垃圾邮件
不是程序问题,是发信身份不被信任。没有 SPF、DKIM、DMARC 记录,又用免费域名或动态 IP,Gmail/QQ 邮箱会直接扔进垃圾箱或排队数小时。
实操建议:
立即学习
“
PHP免费学习笔记(深入)
”;
用真实域名(别用
这类免费二级域),并配好 DNS:SPF 记录(
)、DKIM(宝塔邮件插件或 QQ 邮箱后台可生成)
检查服务器反向解析(PTR 记录)是否指向你的域名,云厂商控制台一般能设置
避免用
发信,改用
或
,降低被标记风险
首次发信别群发,先单发给自己,等几封正常抵达后再逐步加量
真正卡住的地方,往往不在代码里,而在 DNS 记录、云厂商端口策略、邮箱服务商的黑盒规则上。调完 PHP 和 SMTP,记得抬头看一眼域名和服务器本身的“信用分”。
mail()mail()mailsendmail_pathtrueopensslopensslsocketstelnet smtp.qq.com 465yum install telnetapt install telnetsmtp.qq.com465587sendmail/www/server/panel/pyenv/bin/python /www/server/panel/class/mail_main.py send_testConnection refusedxxx.123.comv=spf1 a mx include:smtp.exmail.qq.com ~alladmin@xxx.comno-reply@xxx.comsupport@xxx.com