很多朋友在自己的 VPS 上安装完 WordPress 后,发现想注册新用户,会提示 mail() 函数已被禁用的问题。网上的很多方法都是大同小异,源头找不到,但是都是互相转载抄袭的,也并不见得能解决问题。最后笔者自己尝试了一些,终于将问题成功解决,这里记录一下解决 WordPress 主机禁用 mail() 函数的这个问题。
其实这也不是 VPS 的问题,因为通过 which sendmail 命令可以看到,VPS 上的 sendmail 函数安装正确,上传 PHP 探针,也可以看到 mail 函数一切正常,但是就是发送不了邮件。
问题详情
一般我们会遇到两种情况。
1. WordPress 中点击找回密码,输入用户名或者邮箱之后,点击找回密码,一切正常,提示:请在您的电子邮箱中检查确认连接。但是邮箱里并没有收到任何相关的 邮件。(这种情况其实也有可能是因为邮件进了垃圾箱,建议翻一下垃圾箱看看)
2. 点击找回密码之后,直接提示:您的主机禁用了 mail() 函数。
以上两种情况,今天的方法一般都能解决。
解决方法
不要推崇什么无插件主义了,能用插件解决的事情为什么不用呢?今天的解决方法就是,安装一个叫做 WP Mail SMTP 的插件。
插件主页:
https://cn.wordpress.org/plugins/wp-mail-smtp/
安装方法:下载后上传或者直接后台搜索即可安装。
安装后,需要配置一下使用“Send all WordPress emails via SMTP.”,如图所示。
剩下的按照默认配置即可。
最后我们可以发送一封测试邮件,测试一下插件是否正确运行。
一般都是没有问题的。