wordpress 提示“wordpress 您的主机禁用了mail()函数”
参考:http://www.cmhello.com/lnmp-mail-function-doesnt-work.html
系统是ubuntu14.04
1.安装sendmail
apt-get install sendmail
2.使用下面的命令重启php-fpm进程
/etc/init.d/php-fpm restart
3.检测sendmail是否运行正常
/etc/init.d/sendmail status
如果显示正在运行running 就可以。
可能用到的命令:
/etc/init.d/sendmail start (启动sendmail)
/etc/init.d/sendmail stop (关闭sendmail)
/etc/init.d/sendmail restart (重启sendmail)
4.配置php.ini,填写sendmail的绝对路径
使用命令打开编辑php.ini
vim /usr/local/php/etc/php.ini
输入?sendmail_path 查找定位(或者手动跳转找到sendmail_path),你会发现默认是下面的代码
;sendmail_path =
按 a 进入编辑,将这行修改为
sendmail_path = /usr/sbin/sendmail -t -i
按 Esc 键退出编辑,输入 :wq 保存退出
5.重启php-fpm进程
/etc/init.d/php-fpm restart
6.mail服务的工作不正常需要看/var/log/mail.err以及 /var/log/mail.log
BUG描述:‘sendmail: unable to qualify my own domain name’。
这主要是由于sendmail发送需要检查/etc/hosts文件,如果没有发现包含‘.’的 domainname就会报该条信息.
这时我们可以检查/etc/hosts文件,将看到如下
127.0.0.1 localhost
xx.xx.xx.xx xxx xxx
只需要将第2行末尾加上含有‘.’的后缀。
xx.xx.xx.xx xxx xxx yyy.com
这样问题就解决了。
转自:http://www.xp-sem.com/wordpress-send-mail-of-php/
另外WordPress发送邮件的原理很简单,它是通过PHP中的mail()函数来实现的,所以我们首先要解决的就是测试服务器对mail()函数的支持情况,小拼提供三种解决方案,随你喜欢。
1)新建一个PHP文件,命名为mail_test.php,加入以下代码:
<?php phpinfo(); ?>
将mail_test.php上传至网站根目录,访问该文件,就可以看到你的服务器PHP详细配置信息了,其中的sendmail_path组件,如果值是-t -i,则说明你的服务器支持mail()函数。
2)在上面的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)在mail_test.php中加入如下代码:
<?php if (function_exists('mail')) echo "^_^ mail()函数可以使用!"; else echo "- -! mail()函数不可以使用!"; ?>
以上三种方法,就可以准确地测试出你的服务器对mail()函数的支持情况了。