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

2014年11月5日dbonly
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服务器地址过白名单。

Comments (1)

  • iat.net.cn

    2014年11月15日 at 上午8:40

    也可以使用第三方的邮箱服务器,比如163,需要在php.ini里设置smtp、用户名、密码等

留言

电子邮件地址不会被公开。 必填项已用*标注

上一篇 下一篇