⑴方法二,如果不用sendmail可以尝试使用postfix发邮件
⑵自从安装lnmp环境后,lnmp下mail函数不能发送邮件的问题依然是出现的,在这里,我不建议大家使用sendmail作为发信,理由就是效率低,速度慢。
⑶yum remove sendmail
⑷然后就开始安装Postfix了,这相对与sendmail要效率高很多,发信速度快,占用内存低,可以说是目前服务器发信首选,当然也有很多大神会说smtp也不错,那也没错,但个人爱好,我就喜欢服务器发信的简单!
⑸安装 Postfix
⑹yum install postfix
⑺更改默认MTA为Postfix:
⑻/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix
⑼完事儿,再次检查下是否将MTA改为Postfix了:
⑽alternatives --display mta
⑾配置Postfix,vi编辑main.cf
⑿vi /etc/postfix/main.cf
⒀打开后分别找到以下几项,将其前面的#去掉,并做配置:
⒁myhostname = mail.zzt.
⒂mydomain = zzt.
⒃myorigin = $mydomain
⒄i_interfaces = all
⒅mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
⒆myworks = .../, .../
⒇relay_domains =
⒈home_mailbox = Maildir/
⒉不喜欢vi在线编辑的,可以直接下载main.cf上传到服务器的/etc/postfix/main.cf进行替换吧
⒊检测并启动Postfix
⒋service postfix status
⒌//若未启动,执行以下命令:
⒍service postfix start
⒎chkconfig postfix on
⒏到这一步Postfix算是OK了,但我们还是得到php.in里配置下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 保存退出
⒗重启php-fpm进程
⒘/etc/init.d/php-fpm restart
⒙Linux lnmp下mail函数无法发送邮件的解决方法就介绍到这里了,因为sendmail效率低,比较浪费时间,这里推荐使用postfix发送邮件。