使用 lnmp 环境后,lnmp 下 mail 函数不能发送邮件的问题,这个问题就是,编译好的 LNMP 环境下,自动发送回复邮件功能失效了!!然后我又安装了个 PHP 探针,测试 mail 函数是存在的,但是发邮件死活发不出去。已经确定 mail()函数是开启的,探针里测试发送邮件,但是失败了。
在这里,我不建议大家使用 sendmail 作为发信,理由就是效率低,速度慢,所以,一上来就得把他卸载了,这里我就直接说教程了,不墨迹!
yum remove sendmail
然后就开始安装 Postfix 了,这相对与 sendmail 要效率高很多,发信速度快,占用内存低,可以说是目前服务器发信首选,当然也有很多大神会说 smtp 也不错,那也没错,但个人爱好,我就喜欢服务器发信的简单!
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.2zzt.com
mydomain = 2zzt.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.100.10/28, 127.0.0.0/8
relay_domains =
home_mailbox = Maildir/
在这里我会给出 main.cf 的完整文件,省的大伙改错的,大家只需将 main.cf 文件里的 2zzt.com 替换为你们自己的域名即可 OK 了,main.cf(点击文件名下载),不喜欢 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
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!