宿主/Service

解决lnmp下mail函数不能发送邮件

阿里云

  使用 lnmp 环境后,lnmp 下 mail 函数不能发送邮件的问题,这个问题就是,编译好的 LNMP 环境下,自动发送回复邮件功能失效了!!然后我又安装了个 PHP 探针,测试 mail 函数是存在的,但是发邮件死活发不出去。已经确定 mail()函数是开启的,探针里测试发送邮件,但是失败了。

解决办法:

在这里,我不建议大家使用 sendmail 作为发信,理由就是效率低,速度慢,所以,一上来就得把他卸载了,这里我就直接说教程了,不墨迹!

也想出现在这里?联系我们
创客主机
  1. yum remove sendmail

然后就开始安装 Postfix 了,这相对与 sendmail 要效率高很多,发信速度快,占用内存低,可以说是目前服务器发信首选,当然也有很多大神会说 smtp 也不错,那也没错,但个人爱好,我就喜欢服务器发信的简单!

安装 Postfix:

  1. yum install postfix

更改默认 MTA 为 Postfix:

  1. /usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix

完事儿,再次检查下是否将 MTA 改为 Postfix 了:

  1. alternatives --display mta

配置 Postfix,vi 编辑 main.cf

  1. vi /etc/postfix/main.cf

打开后分别找到以下几项,将其前面的#去掉,并做配置:

  1. myhostname = mail.2zzt.com  
  2. mydomain = 2zzt.com  
  3. myorigin = $mydomain  
  4. inet_interfaces = all  
  5. mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain  
  6. mynetworks = 192.168.100.10/28, 127.0.0.0/8  
  7. relay_domains =  
  8. home_mailbox = Maildir/

在这里我会给出 main.cf 的完整文件,省的大伙改错的,大家只需将 main.cf 文件里的 2zzt.com 替换为你们自己的域名即可 OK 了,main.cf(点击文件名下载),不喜欢 vi 在线编辑的,可以直接下载 main.cf 上传到服务器的/etc/postfix/main.cf 进行替换吧,检测并启动 Postfix

  1. service postfix status

若未启动,执行以下命令:

  1. service postfix start

设置开机启动

  1. chkconfig postfix on

到这一步 Postfix 算是 OK 了,但我们还是得到 php.in 里配置下 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 保存退出,重启 php-fpm 进程

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

解决 lnmp 下 mail 函数不能发送邮件

已有 815 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!