WordPress 使用自带邮件功能收不到邮件的分析
使用wordpress的邮件功能,发邮件用到mail()函数,有时可能收不到邮件,具体分析如下:
1.确认邮箱正确性以及收信记录
邮箱不正确当然收不到邮件,当然很少人会犯这种错误,不过仔细检查一下也没什么损失,确认邮箱正确后,请在垃圾箱和收信记录中查询,我的QQ邮箱就云拦截了wordpress找回密码邮件(─.─||)汗。
- 确认主机是否禁用了mail()函数
非登录状态,访问网站后台登录界面(默认为www.youwebsite.com/wp-login.php),点击表单下方的 找回密码 链接,如下图所示: - WordPress忘记密码
进入到 找回密码 页面,在 用户名或电子邮件地址 表单中输入你的用户注册邮箱或用户名,点击 找回密码 按钮,如下图所示:
- 如果出现下图中的“请在您的电子邮箱中检查确认链接。”提示,说明主机支持邮件收发功能。
- 如果出现下图中的“电子邮件未能发送,可能原因:您的主机禁用了mail()函数。”提示,说明主机不支持邮件收发功能。
2.三种方法测试php mail()函数
使用php探针检测mail()函数支持情况
- 第1步:下载php探针。
- 下载地址:http://www.yahei.net/tz/tz.zip
- 第2步:将下载的压缩包解压。
- 第3步:将解压出的文件tz.php上传到主机根目录。
- 第4步:上传成功后,按照:你的域名/tz.php进行访问,例如:www.xxx.com/tz.php。你将看到以下信息:
- 第5步:将页面拉倒底端,输入:mail,点击函数检测,你将看到检测结果。
按照以下代码新建php文件,上传到根目录
- <?php
- if (function_exists(‘mail’)) {
- echo "mail()函数可以使用!";
- } else
- echo "mail()函数不能够使用!";
- ?>
以:域名/文件名.php访问,根据结果显示判断mail()函数支持情况。
按照以下代码新建php文件,上传到根目录。
- <?php
- $txt = "hello";
- // 以下的邮箱地址改成你的邮件地址
- $mail = ’somebody@example.com';
- // 发送邮件
- mail($mail, "My subject", $txt);
- echo '邮件已经发出';
- ?>
以:域名/文件名.php访问,若显示“邮件已经发出”则支持mail()函数。
3.支持mail()函数情况下还是收不到邮件
此问题发生在我的博客中,仅代表了一种情况,网站由lamp(Linux+Apache+Mysql+PHP)环境搭建。
起初不知道什么问题,重启web服务器php都不行,后来了解到php mail()函数使用sendmail发送邮件,sendmail测试中发现问题,sendmail服务没有启动造成wordpress无法使用mail()函数发送邮件。
解决办法:
- 使用SSH工具登陆vps
- 使用命令:
echo "This is test mail" | mail -s 'Test mail' xxx@xxx.com
测试邮件发送,进入目标邮箱查看是否收到 - 确保sendmail已经启动,使用命令:
service sendmail start
启动sendmail进程
开启后,wordpress的邮件功能都可以使用了。
发表评论
要发表评论,您必须先登录。