centos 无法发送邮件的解决办法

本文详细介绍了如何解决PHP环境中主机无法发送邮件的问题,包括安装sendmail组件、配置php.ini文件、检查hosts文件以及解决邮件发送缓慢的问题。此外,还提供了通过修改hostname和伪装邮件发送方的方法来优化邮件发送过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、主机虽支持mail()函数,却无法发送邮件;
先使用以下命令检查是否已安装sendmail:

rpm –q sendmail

检测结果确实未安装该组件,果断安装:

yum install sendmail

等待安装完成后去检查了下php.ini配置,里面需要修改相关参数,直接:

vi /usr/local/php/etc/php.ini

找到 sendmail_path 所在行,发现是未启用,去掉前面的分号;(按i编辑模式),去掉分号,并将其改为:

sendmail_path = /usr/sbin/sendmail -t –i

这个有的默认就会是这个值。接着重启sendmail:

service sendmail restart

二:发送邮件过慢问题
上面的步骤已经可以正常发送邮件了,但是却发现发送过慢,此时,请检查hosts:

cat /etc/hosts

结果发现:

127.0.0.1               localhost.localdomain localhost

中并没有hostname,将其加入,查看主机名称直接命令:hostname ,这里加入主机名称为:testhost,则改过后的内容则为:

127.0.0.1               localhost.localdomain localhost testhost

接着,重启sendmail;

完成此步骤后还可以解决一个sendmail和sm-client启动慢的问题;

三、邮件发送方为:root@localhost.domain代发问题

方法一:修改hostname为个人域
方法二:伪装成user@domain.com

执行以下命令:

/etc/mail/sendmail.mc

打开后编辑文件,在末端加入以下内容:

MASQUERADE_AS(gongzi.me)dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl MASQUERADE_DOMAIN(gongzi.me)dnl

将其中的gongzi.me换成你自己的域名,然后保存。接着执行以下命令:

 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

而后,重启sendmail服务。

四:执行 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 时,报错:sendmail.mc:10: m4: cannot open `/usr/share/sendmail-cf/m4/cf.m4': No such file or directory,并且导致sendmail相关服务无法正常启动。

原因:未安装sendmail-cf
解决:执行以下命令:

yum install sendmail-cf

完成后问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值