A-A+

LNMP的mail()函数缺失无法发送邮件,解决办法

2015年02月05日 Linux 评论 1 条 阅读 2,767 views 次

wordpress不能发送邮件,提示缺少mail()。

 

解决办法

安装或启动 sendmail 组件 即可。

 

步骤如下:

1.重新安装 sendmail 组件,我用的是 CentOS ,使用下面的命令安装

yum 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

vi /usr/local/php/etc/php.ini

输入?sendmail_path 查找定位(或者手动跳转找到sendmail_path),你会发现默认是下面的代码

;sendmail_path =

按 i 进入编辑,将这行修改为

sendmail_path = /usr/sbin/sendmail -t -i

按 Esc 键退出编辑,输入 :wq 保存退出

 

5.重启php-fpm进程

/etc/init.d/php-fpm restart

 

好了,sendmail安装配置完毕。 但是不是感觉sendmail发送邮件速度很慢?继续看下面

 

付:sendmail发送邮件慢的解决办法

 

cat /etc/hosts

 

显示

[root@imdupeng ~]# cat /etc/hosts

127.0.0.1 localhost

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

10.162.86.80 AY140429213645102459Z

 

(第四行的是服务器内部ip和阿里云服务器的主机名。)

因为sendmail监听的是127.0.0.1,但却无法确认主机名 AY140429213645102459Z(因为在服务器上/etc/sysconfig/network文件里记录的HOSTNAME是 AY140429213645102459Z ),所以发送邮件就非常慢了。那么我就把 AY140429213645102459Z 这个主机名同时也加到127.0.0.1上面,变成:

127.0.0.1 localhost

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 AY140429213645102459Z

10.162.86.80 AY140429213645102459Z

修改方法依然是用vi命令(也可以直接下载相关路径文件夹的文件修改后上传,最好使用EditPlus或者Sublime text等专业编辑器修改文件)。

然后使用命令

service sendmail restart

重启sendmail服务即可。

1 条留言  访客:0 条  博主:0 条   引用: 1 条

来自外部的引用: 1 条

  • WordPress找回密码提示“抱歉,该key似乎无效“解决办法 | 添翼博客

给我留言