当前位置:首页 > 云服务器 > 正文

sendmail搭建邮件服务器如何配置才能正常收发邮件?

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)来实现功能调整。

  1. 设置本地域名

    编辑/etc/mail/localhostnames,添加服务器管理的域名,每行一个域名:

    sendmail搭建邮件服务器如何配置才能正常收发邮件? 第1张

  2. 配置访问控制

    编辑/etc/mail/access文件,定义邮件访问策略。

    Connect:192.168.1.0/24 RELAY # 允许内网网段中继邮件 To:spam@example.com REJECT # 拒绝特定域名的邮件

    生成访问数据库:

    sudo makemap hash access.db < access

  3. 设置虚拟用户

    若需为虚拟域名配置邮箱,需修改/etc/mail/virtusertable,

    user@virtual.com localuser @virtual.com forwardinguser

    生成虚拟用户数据库:

    sendmail搭建邮件服务器如何配置才能正常收发邮件? 第2张

    sudo makemap hash virtusertable.db < virtusertable
  4. 配置DNS记录

    邮件服务器需正确配置DNS解析,包括:

    • MX记录:指向邮件服务器域名, example.com. IN MX 10 mail.example.com.
    • A记录:将mail.example.com解析到服务器IP地址。
    • PTR记录:反向解析IP到域名,避免邮件被标记为垃圾邮件。

    安全配置

    1. 启用SMTP认证

      安装cyrussasl并配置/etc/sasl2/Sendmail.conf:

      重启sendmail并启用TLS加密:

    2. 防火墙设置

      开放25(SMTP)、587(Submission)、465(SMTPS)端口:

      sudo firewallcmd permanent addport=25/tcp sudo firewallcmd permanent addport=587/tcp sudo firewallcmd reload
    3. 防垃圾邮件措施

      sendmail搭建邮件服务器如何配置才能正常收发邮件? 第3张

      • 配置/etc/mail/sendmail.cf中的relaydomains限制中继范围。
      • 使用spamassassin过滤垃圾邮件: sudo yum install spamassassin sudo systemctl start spamd
      • 测试邮件服务器

        1. 本地测试

          使用mail命令发送测试邮件:

          echo "Test body" | mail s "Test Subject" user@example.com
        2. 远程测试

          使用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

        常见问题排查

        1. 检查日志

          日志文件位于/var/log/maillog,可通过grep关键字定位错误:

          grep "error" /var/log/maillog
        2. 权限问题

          确保配置文件权限正确(如/etc/mail/access.db应为644)。

        相关问答FAQs

        Q1: 如何解决邮件发送被对方服务器拒绝的问题?

        A1: 检查DNS记录(尤其是PTR记录)是否正确,确认服务器IP是否被列入垃圾邮件黑名单(可通过mxtoolbox.com查询),确保sendmail配置中FQDN设置正确,避免主机名与域名不匹配。

        Q2: 如何配置邮件服务器支持多个虚拟域名?

        A2: 需在/etc/mail/localhostnames中添加所有域名,并配置virtusertable文件为每个虚拟域名指定邮箱别名或本地用户,最后生成对应的数据库文件并重启sendmail服务。

0