加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

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

发布时间:2021-02-23 07:31:15 所属栏目:安全 来源:网络整理
导读:由站长通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。 使用 lnmp 环境后,lnmp 下 mail 函数不能发送邮件的问题,这个问题就是,编译好的 LNMP 环境下,自动发送回复邮件功能失效了!!然后我又安装了个 PHP

以下代码由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】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!