解决lnmp下mail函数不能发送邮件
以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考 使用 lnmp 环境后,lnmp 下 mail 函数不能发送邮件的问题,这个问题就是,编译好的 LNMP 环境下,自动发送回复邮件功能失效了!!然后我又安装了个 PHP 探针,测试 mail 函数是存在的,但是发邮件死活发不出去。已经确定 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.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 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:ASP站长网) |