WordPress发送邮件问题:PHPmail()函数


WordPress无法发送邮件问题
1)WordPress后台设置正确,选择“用户必须注册并登录才可以发表评论”、“有人发表评论时、评论等待审核时发送电子邮件”和“用户找回密码”功能,经测试均无效,收不到邮件;
2)安装留言回复插件:Comment Reply Notification,在回复用户评论时,还是收不到邮件。
3)邮件发送正常,但显示由XXX代发字样。

前几天出现个奇怪的现象,本站使用的虚拟主机迁移至独立IP的主机上之后,不能使用smtp发送邮件了,找了好多方法没能解决,最后发现是主机提供商的问题,联系技术解决了。
下边说下一般情况下不能发送邮件的解决办法。

首先检查PHP是否支持mail()函数
WordPress发送邮件的原理很简单,它是通过PHP中的mail()函数来实现的,所以我们首先要解决的就是测试服务器对mail()函数的支持情况,下面有三种方法:

1)新建一个PHP文件,命名为mail_test.php,加入以下代码:

<?php phpinfo(); ?>

mail_test.php上传至网站根目录,访问该文件,就可以看到你的服务器PHP详细配置信息了,其中的sendmail_path组件,如果值是-t -i,则说明你的服务器支持mail()函数。

2)新建一个PHP文件,命名为mail_test.php,加入以下代码:

<?php
$text = "This is a test!";
// 将邮箱地址改成你的
$mail = 'xpsem2010@gmail.com'; 
// 发送邮件
mail($mail, "Mail Test", $text);
echo "Message has been sent !";
?>

同上,访问mail_test.php文件,如果你的邮箱收到名为Mail Test的新邮件,那表示你的服务器是支持mail()函数发送邮件的。
3)新建一个PHP文件,命名为mail_test.php,加入以下代码:

<?php
if (function_exists('mail')) echo "^_^ mail()函数可以使用!";
else echo "- -! mail()函数不可以使用!";
?>

同上,访问mail_test.php文件

以上三种方法,就可以准确地测试出你的服务器对mail()函数的支持情况了。如果不支持mail()函数的话,就去找你的IDC商沟通吧!如果支持,邮件发送可能会显示由XXX@XXXYYYZZZ.com代发,很丑啊!!所以推荐使用smtp插件,我这里用的是Easy WP SMTP ,配置好之后就能发送邮件了。

但我之前用的smtp发送邮件用的好好的,迁移主机搬家之后就不能用了,最后发现是主机问题,需要主机提供商把smtp服务器地址过白名单。

声明:豆瓣不小心|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - WordPress发送邮件问题:PHPmail()函数


Don't Worry,Be Happy