sendmail搭建邮件服务器如何配置才能正常收发邮件?
- 云服务器
- 2025-12-16
- 4
sendmail是一款历史悠久且功能强大的邮件传输代理(MTA)软件,广泛用于Linux/Unix系统中搭建邮件服务器,它支持多种邮件协议,具备高度的可配置性,适合企业级应用场景,以下将详细介绍使用sendmail搭建邮件服务器的步骤、配置要点及注意事项。
安装sendmail
在CentOS/RHEL系统中,可通过yum包管理器安装sendmail及其相关组件:
sudo yum install sendmail sendmailcf mailx
安装完成后,启动sendmail服务并设置开机自启:
sudo systemctl start sendmail sudo systemctl enable sendmail
在Ubuntu/Debian系统中,使用aptget安装:
sudo aptget install sendmail sendmailbin
基本配置
sendmail的主配置文件位于/etc/mail/sendmail.cf,建议修改前备份原始文件,配置文件语法较为复杂,通常通过修改/etc/mail/目录下的辅助文件(如localhostnames、access.db)来实现功能调整。
-
设置本地域名
编辑/etc/mail/localhostnames,添加服务器管理的域名,每行一个域名:

-
配置访问控制
编辑/etc/mail/access文件,定义邮件访问策略。
Connect:192.168.1.0/24 RELAY # 允许内网网段中继邮件 To:spam@example.com REJECT # 拒绝特定域名的邮件生成访问数据库:
sudo makemap hash access.db < access
-
设置虚拟用户
若需为虚拟域名配置邮箱,需修改/etc/mail/virtusertable,
user@virtual.com localuser @virtual.com forwardinguser生成虚拟用户数据库:
sudo makemap hash virtusertable.db < virtusertable
- MX记录:指向邮件服务器域名, example.com. IN MX 10 mail.example.com.
- A记录:将mail.example.com解析到服务器IP地址。
- PTR记录:反向解析IP到域名,避免邮件被标记为垃圾邮件。
-
启用SMTP认证
安装cyrussasl并配置/etc/sasl2/Sendmail.conf:
重启sendmail并启用TLS加密:
-
防火墙设置
开放25(SMTP)、587(Submission)、465(SMTPS)端口:
sudo firewallcmd permanent addport=25/tcp sudo firewallcmd permanent addport=587/tcp sudo firewallcmd reload -
防垃圾邮件措施

- 配置/etc/mail/sendmail.cf中的relaydomains限制中继范围。
- 使用spamassassin过滤垃圾邮件: sudo yum install spamassassin sudo systemctl start spamd
-
本地测试
使用mail命令发送测试邮件:
echo "Test body" | mail s "Test Subject" user@example.com -
远程测试
使用telnet连接SMTP服务器:
telnet mail.example.com 25 EHLO example.com MAIL FROM: <admin@example.com> RCPT TO: <user@example.com> DATA Subject: Remote Test . QUIT -
检查日志
日志文件位于/var/log/maillog,可通过grep关键字定位错误:
grep "error" /var/log/maillog -
权限问题
确保配置文件权限正确(如/etc/mail/access.db应为644)。
测试邮件服务器
常见问题排查
相关问答FAQs
Q1: 如何解决邮件发送被对方服务器拒绝的问题?
A1: 检查DNS记录(尤其是PTR记录)是否正确,确认服务器IP是否被列入垃圾邮件黑名单(可通过mxtoolbox.com查询),确保sendmail配置中FQDN设置正确,避免主机名与域名不匹配。
Q2: 如何配置邮件服务器支持多个虚拟域名?
A2: 需在/etc/mail/localhostnames中添加所有域名,并配置virtusertable文件为每个虚拟域名指定邮箱别名或本地用户,最后生成对应的数据库文件并重启sendmail服务。
配置DNS记录
邮件服务器需正确配置DNS解析,包括:
安全配置