Linux Sendmail安装指南
Sendmail简介与准备工作
Sendmail是一款广泛使用的开源邮件传输代理(MTA),负责在Linux系统中处理电子邮件的发送、接收和路由,其功能强大、配置灵活,适用于企业级和个人服务器环境,在安装Sendmail之前,需确保系统满足基本要求:建议使用稳定的Linux发行版(如CentOS、Ubuntu或Debian),并以root或具有sudo权限的用户身份操作,确保网络连接正常,并关闭可能冲突的防火墙或邮件服务(如Postfix、Exim)。

安装Sendmail
基于RPM的系统(如CentOS、RHEL)
使用yum或dnf包管理器安装Sendmail:
sudo yum install sendmail sendmail-cf -y # CentOS 7及以下 sudo dnf install sendmail sendmail-cf -y # CentOS 8及以上
安装完成后,启动Sendmail服务并设置开机自启:
sudo systemctl start sendmail sudo systemctl enable sendmail
基于Debian的系统(如Ubuntu、Debian)
使用apt包管理器安装Sendmail:
sudo apt update sudo apt install sendmail sendmail-bin -y
启动并启用服务:
sudo systemctl start sendmail sudo systemctl enable sendmail
Sendmail基本配置
Sendmail的主配置文件位于/etc/mail/sendmail.cf,但直接修改此文件较为复杂,推荐使用m4宏生成器进行配置。
生成配置文件
备份原始配置文件后,进入/etc/mail目录:
cd /etc/mail sudo cp sendmail.cf sendmail.cf.bak
编辑sendmail.mc文件(如需修改域名、中继等设置),
sudo nano sendmail.mc
关键配置项包括:
DOMAIN('mydomain.com'):设置默认域名。MAILER(local):启用本地邮件 delivery。MAILER(smtp):启用SMTP中继。
保存后,使用m4生成新的sendmail.cf:

sudo m4 sendmail.mc > sendmail.cf
重启Sendmail服务
sudo systemctl restart sendmail
配置邮件中继与访问控制
为防止Sendmail被滥用,需配置中继和访问控制。
中继配置
编辑/etc/mail/sendmail.mc,添加以下行允许特定IP或网络中继:
define('RELAY_MAIL_ARGS', 'Cmd: "sendmail -Ac -oi -t"')dnl
define('RELAY_MAIL_HOSTS', '127.0.0.1 [::1] 192.168.1.0/24')dnl
重新生成配置文件并重启服务。
访问控制列表(ACL)
编辑/etc/mail/access文件,添加允许或拒绝的规则:
localhost.localdomain RELAY 192.168.1.0/24 RELAY badactor.com REJECT
更新访问数据库:
sudo makemap hash access.db < access
测试Sendmail功能
本地邮件测试
使用mail命令发送测试邮件:
echo "Test email body" | mail -s "Test Subject" user@localhost
检查/var/spool/mail/username文件或使用mailq查看队列。
远程邮件测试
若需发送外部邮件,确保域名正确解析且DNS配置了MX记录,使用telnet测试SMTP连接:

telnet mailserver.example.com 25
输入以下命令(示例):
EHLO localhost MAIL FROM: <sender@domain.com> RCPT TO: <recipient@domain.com> DATA Subject: Test This is a test email. . QUIT
常见问题与维护
日志查看
Sendmail日志通常位于/var/log/maillog,可通过以下命令实时监控:
tail -f /var/log/maillog
队列管理
查看邮件队列:
mailq
清除冻结的邮件:
sudo sendmail -q -v
防火墙配置
若使用iptables或firewalld,需开放25端口(SMTP):
sudo firewall-cmd --permanent --add-port=25/tcp sudo firewall-cmd --reload
安全建议
- 启用TLS加密:配置SSL证书以加密邮件传输。
- 定期更新:使用包管理器更新Sendmail至最新版本,修复安全漏洞。
- 限制用户权限:避免以root身份运行Sendmail,创建专用用户账户。
通过以上步骤,您可在Linux系统中成功安装并配置Sendmail,根据实际需求调整参数,确保邮件服务稳定、安全运行。



















