LNMP的mail函数不能发送邮件解决办法

2011年12月22日 16 条评论 17.99k 次阅读 0 人点赞

编译好的LNMP环境下,WordPress的WP Tread Comment插件的自动发送回复邮件功能失效了!!然后我又安装了个PHP探针,测试mail函数是存在的,但是发邮件死活发不出去。

怪哉了,之前我的独立服务器和VPS编译LNMP环境都没有出现这样的问题,一时间丈二的和尚摸不着头脑了。

冷静下来之后,我试着对比了能发邮件和不能发邮件的PHP配置文件,答案是相同的,也就是说没有设置上的问题导致不能发送邮件。试着用Linux下的Shell命令mail发送邮件,新的VPS提示这个命令不存在!!

再做进一步的检查,发现这个VPS默认没有安装sendmail这个Linux下的基本邮件组件。看来问题就在这里了!!通过重新安装 sendmail(我用的CentOS,则是使用yum install sendmail来安装)之后,重启php-fpm进程,结果还是发送失败。

用Shell下的mail命令进行测试,能够正常发出E-Mail,没有任何问题。但是PHP下的mail()函数就是死活不行。

继续网上搜索资料,结果发现编译PHP的时候,需要确保sendmail组件是已经安装好了的,不然发送邮件就不行。但是我又不想重新编译一次PHP(太费时间了),有没有别的办法呢?——答案当然是有的。

只需要在php.ini文件中,找到mail部分的设置,将下面这个参数设置下即可:

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

也就是说让系统找到sendmail的绝对路径,这样就不会有问题啦!重启PHP,测试发送邮件,成功!!

文章来源:http://www.d9ba.com/1537.html

落花生

认准了方向,就要勇敢地走下去,十年磨一剑,我相信,只要坚持,一切都有可能。

文章评论(16)

  • wordpress主题

    确实遇到这个问题了,已经解决了哈!!!谢谢

    2013年8月31日
  • 得到

    但是我的VPS本身 sendmail_path = /usr/sbin/sendmail -t -i 但是就是发布出去。~~ 以前有个主题可以的,我以为自己主题问题,重新安装了那个主题,结果还是不行。。。。

    2013年6月30日
  • 胡倡萌

    我最近入手了阿里云服务器 这两天都在折腾,的确遇到这个问题,已经解决,谢谢分享

    2013年1月8日
    • 落花生

      @胡倡萌 看来他们服务器也没配置好sendmail这个函数,云服务器用得感觉如何?

      2013年1月9日
      • 胡倡萌

        @落花生 初次接触,备案中,目前只是在学习搭建环境,不过我的www.cmhello.com母鸡就是阿里云的,还算不错的

        2013年1月9日
  • 雨迹

    我也遇到了这个问题,最后是安装sendmail解决的,-t -i查看sendmail_path 没有问题。我用的0.8版的。于是我发现这个问题的原因在于
    1.mail()函数是否支持。
    2.sendmail安装了没有。

    2012年3月10日
  • 小邓

    经检验!成功了。谢谢

    2012年2月26日
  • VPS ROLL

    汗,我的绝对路径什么的都没有问题的。可是就是无法发送。。郁闷

    2012年1月29日
  • 为你牵挂

    WIN主机下目前已经基本完美解决了伪静态,邮件发送等问题了

    2012年1月10日
  • 阡陌博客

    我遇到的是win下面的,不过已经解决了

    2011年12月25日
  • XMChen

    哟西...这是巧合嘛...我也遇到这问题以文章记之了...哈哈

    2011年12月25日
  • 白开水

    哥们 圣诞快乐。 以后希望能用上vps。

    2011年12月24日
  • Mylieb

    祝愿李哥圣诞快乐~

    2011年12月24日
    • 落花生

      @Mylieb 非常感谢,也祝小弟节日快乐!

      2011年12月24日
  • 返利网

    我也用的vps,暂时还没发现这个问题。呵呵。

    2011年12月23日