Sendmail无法发送邮件及发送过慢解决

2026-01-14 01:51:21

今天折腾CentOS的时候Sendmail碰到的一些问题,如邮件无法发送,发送后的一些问题等等,这里统一做个记录,以备不是之需,同时也希望能帮到一些碰到这些问题的童鞋。每个问题都会有详细的操作步骤,按照步骤操作即可;

折腾环境: CentOS

邮件组件:Sendmail

一、主机虽支持mail()函数,却无法发送邮件;

先使用以下命令检查是否已安装sendmail:

代码语言:javascript复制rpm –q sendmail检测结果确实未安装该组件,果断安装:

代码语言:javascript复制yum install sendmail等待安装完成后去检查了下php.ini配置,里面需要修改相关参数,直接:

代码语言:javascript复制vi /usr/local/php/etc/php.ini找到 sendmail_path 所在行,发现是未启用,去掉前面的分号;(按i编辑模式),去掉分号,并将其改为:

代码语言:javascript复制sendmail_path = /usr/sbin/sendmail -t –i这个有的默认就会是这个值。接着重启sendmail:

代码语言:javascript复制service sendmail restart二:发送邮件过慢问题

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

代码语言:javascript复制cat /etc/hosts结果发现:

代码语言:javascript复制127.0.0.1 localhost.localdomain localhost中并没有hostname,将其加入,查看主机名称直接命令:hostname ,这里加入主机名称为:testhost,则改过后的内容则为:

代码语言:javascript复制127.0.0.1 localhost.localdomain localhost testhost接着,重启sendmail;

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

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

方法一:修改hostname为个人域

方法二:伪装成user@domain.com

执行以下命令:

代码语言:javascript复制/etc/mail/sendmail.mc打开后编辑文件,在末端加入以下内容:

代码语言:javascript复制MASQUERADE_AS(gongzi.me)dnl FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl MASQUERADE_DOMAIN(gongzi.me)dnl将其中的gongzi.me换成你自己的域名,然后保存。接着执行以下命令:

代码语言:javascript复制 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

解决:执行以下命令:

代码语言:javascript复制yum install sendmail-cf完成后问题解决。

有别的再陆续补充!

天下足球世界杯