Linux 安装 Sendmail 的完整指南
Sendmail 是一款历史悠久且功能强大的邮件传输代理(MTA),广泛用于 Linux 系统中处理邮件的发送与接收,本文将详细介绍在 Linux 系统中安装、配置和测试 Sendmail 的步骤,帮助用户快速搭建邮件服务环境。

安装 Sendmail
在大多数 Linux 发行版中,Sendmail 通常可以通过包管理器直接安装,以常见的 Ubuntu/Debian 和 CentOS/RHEL 为例,安装步骤略有不同。
对于 Ubuntu/Debian 系统:
打开终端,更新软件包列表后,使用以下命令安装 Sendmail:
sudo apt update sudo apt install sendmail sendmail-cf
安装完成后,Sendmail 服务会自动启动,可通过 systemctl status sendmail 检查服务状态。
对于 CentOS/RHEL 系统:
使用 yum 或 dnf 包管理器安装 Sendmail:
sudo yum install sendmail sendmail-cf
安装后,同样可通过 systemctl status sendmail 验证服务运行状态。
配置 Sendmail
Sendmail 的主要配置文件位于 /etc/mail/ 目录下,核心文件包括 sendmail.cf 和 access。
编辑 sendmail.cf
sendmail.cf 是 Sendmail 的主配置文件,但直接修改该文件较为复杂,建议使用 m4 宏工具生成配置文件,编辑 sendmail.mc 文件(通常位于 /etc/mail/):
sudo nano /etc/mail/sendmail.mc
根据需求修改配置,例如设置域名、监听地址等,修改后,使用以下命令生成新的 sendmail.cf:

sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
配置 access 文件
access 文件用于控制邮件访问权限,允许特定 IP 地址转发邮件,可添加以下内容:
localhost.localdomain RELAY 192.168.1. RELAY
保存后,执行以下命令使配置生效:
sudo makemap hash /etc/mail/access.db < /etc/mail/access
重启 Sendmail 服务
每次修改配置后,需重启服务使更改生效:
sudo systemctl restart sendmail
测试 Sendmail 功能
安装配置完成后,可通过以下方式测试 Sendmail 是否正常工作。
本地邮件测试
使用 mail 命令发送测试邮件:
echo "Test email body" | mail -s "Test Subject" user@example.com
检查收件人邮箱是否收到邮件,或通过 /var/log/maillog 查看日志排查问题。
远程邮件测试
若需发送外部邮件,确保 DNS 解析正确,并配置域名 MX 记录,可通过 telnet 测试 SMTP 连接:
telnet localhost 25
输入 EHLO localhost 查看服务器响应,若返回 250 状态码,则表示 SMTP 服务正常。

安全与优化建议
防止垃圾邮件
- 配置
access文件限制未授权访问; - 启用 Sendmail 的
FEATURE(masquerade_envelope)隐藏内部主机名; - 使用
spamassassin等工具过滤垃圾邮件。
日志管理
Sendmail 的默认日志位于 /var/log/maillog,建议配置 logrotate 定期清理日志,避免磁盘空间不足。
防火墙设置
确保防火墙允许 SMTP 端口(25)的入站连接,以 Ubuntu 为例:
sudo ufw allow 25/tcp
常见问题排查
若遇到邮件发送失败问题,可检查以下方面:
- DNS 配置:确保域名 MX 记录正确指向邮件服务器;
- 服务状态:确认 Sendmail 和相关服务(如
named)正在运行; - 权限问题:检查
/var/spool/mail/目录的权限是否正确; - 防火墙/SELinux:禁用防火墙或调整 SELinux 策略测试是否为拦截导致。
通过以上步骤,用户可在 Linux 系统中成功部署 Sendmail,并根据实际需求进行个性化配置,Sendmail 虽然配置复杂,但其稳定性和灵活性使其仍被广泛应用于企业级邮件服务场景。

















