温馨提示×

Ubuntu如何设置邮件服务器

小樊
48
2026-07-16 22:52:56
栏目: 云计算

在 Ubuntu 上搭建邮件服务器是一个系统工程,涉及多个组件。下面我给你一个从零到可用的完整思路,适合生产环境,也适合学习。


一、邮件服务器核心组成

一个完整的邮件服务器通常包括:

功能 软件
SMTP(发信) Postfix
IMAP / POP3(收信) Dovecot
用户认证 Dovecot SASL / MySQL
防垃圾邮件 SpamAssassin
防病毒 ClamAV(可选)
邮件过滤 Postfix + Dovecot
Webmail Roundcube(可选)

二、前期准备(非常重要)

1️⃣ 域名与 DNS 设置

假设你的域名是 example.com

必须配置的 DNS 记录:

A     mail.example.com    → 服务器公网 IP
MX    example.com         → mail.example.com

反向解析(PTR)

  • 向你的服务器提供商申请
  • IP 反解析为 mail.example.com

❗ 没有 PTR,邮件极大概率被当成垃圾邮件


2️⃣ 服务器要求

  • Ubuntu 20.04 / 22.04 / 24.04
  • 公网 IP
  • 25 端口未被封(很多云厂商默认封)
  • 关闭 SELinux(Ubuntu 默认无)

三、安装基础软件

sudo apt update
sudo apt install -y postfix dovecot-core dovecot-imapd dovecot-pop3d \
mailutils spamassassin clamav clamav-daemon

安装 Postfix 时选择:

  • ✅ Internet Site
  • System mail name:example.com

四、配置 Postfix(SMTP)

1️⃣ 主配置文件

编辑:

sudo nano /etc/postfix/main.cf

关键配置:

myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, $mydomain

mynetworks = 127.0.0.0/8

home_mailbox = Maildir/

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous

smtpd_recipient_restrictions =
  permit_sasl_authenticated,
  permit_mynetworks,
  reject_unauth_destination

2️⃣ 启用 SMTP 认证

编辑:

sudo nano /etc/postfix/master.cf

取消注释或添加:

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes

五、配置 Dovecot(IMAP / POP3)

1️⃣ 启用协议

sudo nano /etc/dovecot/dovecot.conf
protocols = imap pop3

2️⃣ 邮箱路径

sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

3️⃣ SASL 认证

sudo nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login

启用系统用户认证:

!include auth-system.conf.ext

4️⃣ Postfix 与 Dovecot 对接

sudo nano /etc/dovecot/conf.d/10-master.conf
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

六、创建邮件用户(系统用户)

sudo useradd -m -s /bin/bash user1
sudo passwd user1

邮箱目录:

/home/user1/Maildir

七、启动服务

sudo systemctl restart postfix dovecot
sudo systemctl enable postfix dovecot

八、测试邮件服务器

1️⃣ 本地发信

echo "test" | mail -s "hello" user1@example.com

2️⃣ 用邮件客户端

  • IMAP:mail.example.com
  • SMTP:mail.example.com
  • 端口:
    • IMAP:143 / 993
    • SMTP:587

九、反垃圾 & 安全(强烈建议)

1️⃣ SPF

TXT example.com
"v=spf1 mx -all"

2️⃣ DKIM(推荐)

使用 opendkim

3️⃣ DMARC

TXT _dmarc.example.com
"v=DMARC1; p=quarantine; rua=mailto:admin@example.com"

十、推荐方案(省事)

如果你不想折腾:

iRedMail(一键安装)

wget https://iredmail.org/iRedMail.sh
bash iRedMail.sh
  • 自动配置 Postfix + Dovecot + Roundcube
  • 自带 Web 管理后台
  • 适合生产环境

十一、常见坑

问题 原因
发不出去 25 端口被封
进垃圾邮箱 无 PTR / SPF / DKIM
认证失败 SASL 未配置
收不到信 防火墙 / DNS

十二、我可以继续帮你

你可以告诉我:

  1. ✅ Ubuntu 版本
  2. ✅ 云服务器还是本地
  3. ✅ 是否要 Web 邮箱
  4. ✅ 用户规模(几人 / 几百人)

我可以给你 定制配置方案一步一步命令版教程

0