LNMP笔记:解决mail函数不能发送邮件

注:sendmail 组件的方式发送邮件比较慢,所以请采用 postfix 组件发送邮件,具体请看 https://www.cmhello.com/lnmp-centos-postfix.html ,以下内容就不用看了!

这两天一直在学习配置阿里云服务器,目前打算使用LNMP环境,在探针里测试发送邮件,失败了。已经确定mail()函数是开启的,于是乎,Google一下,发现 李思章 的方法不错,Mark一下。

问题根源

没有安装或启动 sendmail 组件

解决办法

我是新手,命令不熟,所以写的很详细,老鸟勿喷哦

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

1
yum install sendmail

2.使用下面的命令重启php-fpm进程

1
/etc/init.d/php-fpm restart

3.检测sendmail是否运行正常

1
/etc/init.d/sendmail status

如果显示正在运行running 就可以。

可能用到的命令

1
2
3
4
5
/etc/init.d/sendmail start (启动sendmail)
 
/etc/init.d/sendmail stop  (关闭sendmail)
 
/etc/init.d/sendmail restart (重启sendmail)

4.配置php.ini,填写sendmail的绝对路径

使用命令打开编辑php.ini

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

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

1
;sendmail_path =

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

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

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

5.重启php-fpm进程

1
/etc/init.d/php-fpm restart

 

再次测试,成功了!

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2015/1/11作者: 胡倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

25 条评论

发表评论

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

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

  1. 番号姐姐说道:
    18#

    我的vps sendmail 重启,关闭这些命令并没有问题.
    php也支持mail()函数 但依然发不出去邮件.......

  2. Quinceanera说道:
    17#

    按照这个方式安装了,但是sendmail start出现错误,提示好像是找不到日志文件,何解?

  3. chonghua说道:
    16#

    碰到奇葩事,能收到密码重置邮件,却收不到评论审核或者评论回复邮件。不知道怎么搞了。

  4. 八卦妹说道:
    15#

    我的按着设置为啥探针测试还是不成功啊

  5. 826指南网说道:
    14#

    /etc/init.d/sendmail start (启动sendmail)
    请问大神除了这个,还有一个sm-client服务怎么启动呀?

  6. 外汇站说道:
    13#

    安装sendmail后,使用WordPress Database Backup定时备份收不到邮件。

  7. remy说道:
    12#

    请问博主选择的为什么不是postfix呢?sendmail和postfix哪个比较好点?看了你的文章,我安装sendmail没有成功,但是安装postfix成功了。我想两者应该有点区别吧。

    • 胡倡萌说道:

      postfix 要好些,我也用 postfix了 只是一直没写文章罢了

  8. 三只蝙蝠说道:
    11#

    这个启用跟停用后 没发现有什么区别

  9. 说道:
    10#

    sendmail 太占服务器资源了 wp的smtp插件就够用了

  10. 郑杰说道:
    9#

    倡萌大叔,反正我在你的博客上评论感觉要等好一会才会提交成功,postfix秒提交

  11. 郑杰说道:
    8#

    倡萌大叔,不建议使用sendmail,sendmail效率低下,发信速度慢,建议使用postfix,postfix在阿里云的CentOS6.3中已经内置

    • 胡倡萌说道:

      大叔老了,暂时不想折腾太多了,不过谢谢建议

  12. 冰沙说说道:
    7#

    :arrow: 你想复杂了吧,不用这么麻烦,阿里云的linux服务器只是默认没开sendmail,只要【./etc/init.d/sendmail start】一步就可以了……

  13. Musk说道:
    6#

    还是没用....

  14. vps部落说道:
    5#

    不如用插件好,mail函数最好禁用吧

  15. 莫语说道:
    4#

    貌似是lamp环境吧?

    • 胡倡萌说道:

      其实只要是linux即可

  16. furk说道:
    3#

    真心看不懂,还是交给主机商打理去吧

  17. Tokin说道:
    2#

    VPS还要配置,感觉好麻烦额

    • 胡倡萌说道:

      一般每一个专业的站长都需要经历vps这一步的,除非你不想你的网站发展壮大

      • 灰狼说道:

        不认同该观点。网站大了,会有一个专业的运维人员。

  18. 旅途者说道:
    1#

    没遇到过,不懂

扫一扫,用手机访问本站

扫一扫,用手机访问本站