You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

主机禁用php mail函数 持cPanel权限的WordPress站点如何解决邮件发送问题

WordPress禁用mail()函数后的发信解决方案(基于cPanel权限可操作)
  • 优先用SMTP发信替代原生mail()函数,这是兼容性最高、不碰服务器配置的稳妥方案
    1. 先登录cPanel找到「电子邮件账户」功能,创建一个站点专属发信邮箱,比如no-reply@你的站点域名.com,设置好密码;创建完成后在对应邮箱的配置说明页,记下SMTP参数:通常本地SMTP地址为localhost,SSL加密端口为465,非加密端口为25,确认账号密码、加密方式信息准确。
    2. 回到WordPress后台,两种方式配置SMTP:
      • 懒人方式:安装SMTP发信类插件,在插件设置页填入刚才记下的SMTP参数,保存后发测试邮件验证即可,后续所有系统邮件(密码重置、评论通知、表单提交通知等)都会自动走SMTP发送。
      • 不想装插件的话,把下面的代码加到当前子主题的functions.php文件末尾,替换成你自己的SMTP参数保存即可:
// WordPress自定义SMTP发信配置
add_action( 'phpmailer_init', 'custom_wp_smtp' );
function custom_wp_smtp( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host = 'SMTP服务器地址';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 465;
    $phpmailer->Username = '你的发信邮箱全称';
    $phpmailer->Password = '发信邮箱密码';
    $phpmailer->SMTPSecure = 'ssl';
    $phpmailer->From = '发信人显示邮箱';
    $phpmailer->FromName = '你的站点名称';
}
  • 可尝试直接解除mail()函数禁用
    部分主机只是在PHP默认配置里禁用了函数,没有做全局强制限制。你可以在cPanel找到「MultiPHP管理器」或者「选择PHP版本」入口,进入PHP选项配置页,找到disable_functions配置项,查看禁用列表里是否有mail条目,如果有就删除这个值,保存配置后通常会自动生效,不需要额外操作。如果这个配置项是灰色无法编辑,说明是主机商全局强制禁用,换上面的SMTP方案即可。
  • 极端情况备选:API发信
    如果主机商同时封禁了本地SMTP出站端口,就用API模式发信:在WordPress安装支持邮件API发信的插件,对接交易邮件服务的API接口,只需要填入对应服务的鉴权密钥即可发信,不依赖服务器mail()函数,也不需要走SMTP端口,发信到达率通常比原生mail函数更高。

配置完成后务必发送测试邮件验证,同时检查收件箱的垃圾邮件文件夹,避免发信被误判为垃圾邮件影响正常使用。

内容的提问来源于stack exchange,提问作者thecodeofphp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 06:39:26