凌峰创科服务平台

Ubuntu如何搭建邮件服务器?

重要声明:为什么搭建邮件服务器很难?

在开始之前,你必须了解以下几点:

Ubuntu如何搭建邮件服务器?-图1
(图片来源网络,侵删)
  1. IP 信誉是关键:如果你的服务器 IP 是新的,或者之前被滥用过,你的邮件很可能会被 Gmail、Outlook 等主流服务商直接标记为垃圾邮件,这需要时间和良好的发信记录来建立信誉。
  2. 复杂性:邮件系统由多个组件协同工作(MTA, MDA, MUA, DNS, DKIM, SPF, DMARC, DNSSEC 等),任何一个环节配置错误都可能导致邮件发送失败或被拒收。
  3. 持续维护:你需要不断监控系统日志、更新软件、处理各种问题。
  4. 法律法规:你需要了解并遵守你所在地区关于邮件发送的法律法规(如反垃圾邮件法),并尊重用户的隐私。

如果你只是需要一个简单的邮件服务,强烈建议使用专业的第三方邮件托管服务(如 Google Workspace, Microsoft 365, Zoho Mail, 阿里企业邮箱等)。 这能节省你大量的时间和精力。


方案选择:传统 vs. 现代化

对于 Ubuntu,主流的邮件服务器软件栈有两种选择:

特性 传统方案 (Postfix + Dovecot) 现代化方案 (Mailcow)
组件 MTA: Postfix (发送/接收)
MDA/IMAP/POP3: Dovecot (存储/接收)
管理: 手动配置或使用第三方工具 (如 iRedMail)
一体化套件: 包含 Postfix, Dovecot, SpamAssassin, ClamAV, SOGo (Webmail/日历/联系人), Rspamd (反垃圾邮件), DKIM/SPF/DMARC 自动管理等。
优点 - 灵活度高,可完全定制
- 社区支持庞大,资料丰富
- 性能经过长期验证
- 开箱即用,功能强大
- Web 管理界面,简化配置
- 安全性高,默认配置良好
- 自动处理 DKIM, SPF, DMARC 等复杂设置
缺点 - 配置极其复杂,容易出错
- 需要手动配置所有安全策略
- 没有统一的管理界面
- 灵活性相对较低
- 学习曲线转向如何使用其管理界面
- 所有组件都由 Mailcow 团队维护
推荐人群 - 有 Linux 经验,希望深入学习邮件系统原理的爱好者或管理员
- 有特殊定制需求的场景
- 绝大多数用户,特别是希望快速搭建一个功能完善、安全可靠的邮件服务器的用户
- 不想陷入繁琐配置的管理员

对于绝大多数人,我强烈推荐使用 Mailcow 它能帮你规避掉 90% 的坑,本指南将重点介绍 Mailcow,并简要介绍传统方案。


使用 Mailcow (推荐)

Mailcow 是一个功能强大、易于使用的邮件服务器套件。

Ubuntu如何搭建邮件服务器?-图2
(图片来源网络,侵删)

第 1 步:准备环境

  1. 服务器要求

    • 操作系统:Ubuntu 20.04 LTS 或 22.04 LTS。
    • 内存:建议至少 2GB,推荐 4GB 或以上,因为 SOGo、ClamAV、SpamAssasin 等服务比较消耗资源。
    • 硬盘:至少 25GB 可用空间。
    • 域名:一个你自己的域名,mail.example.com
    • 静态公网 IP:必须有一个固定的、干净的公网 IP。
    • 主机名:正确设置服务器的主机名,如果你的域名是 example.com,那么主机名可以是 mail.example.com,可以通过 hostnamectl set-hostname mail.example.com 设置。
  2. 更新系统

    sudo apt update && sudo apt upgrade -y
  3. 安装必要工具

    sudo apt install -y git curl wget

第 2 步:安装 Mailcow

  1. 克隆 Mailcow 仓库

    Ubuntu如何搭建邮件服务器?-图3
    (图片来源网络,侵删)
    cd /opt
    sudo git clone https://github.com/mailcow/mailcow-dockerized
    cd mailcow-dockerized
  2. 生成配置文件

    sudo cp mailcow.conf config/mailcow.conf

    然后编辑这个文件:

    sudo nano config/mailcow.conf

    你至少需要修改 MAILCOW_HOSTNAMEMAILCOWORGANIZATION,其他选项可以保持默认。

    # config/mailcow.conf
    MAILCOW_HOSTNAME=mail.example.com # 你的邮件服务器域名
    ...
    # 其他配置...

    保存并退出 (Ctrl+X, Y, Enter)。

  3. 启动安装: Mailcow 使用 Docker 和 Docker Compose 来管理所有服务,首先确保你的系统已经安装了它们。

    # 安装 Docker
    sudo apt install -y docker.io docker-compose-plugin
    # 启动 Docker 服务
    sudo systemctl enable --now docker
    # 将当前用户加入 docker 组,避免每次都 sudo
    sudo usermod -aG docker ${USER}
    # 重要:注销并重新登录,或者运行 newgrp docker 使组生效

    现在开始安装:

    ./generate_config.sh

    这个脚本会检查你的配置并下载所有必需的 Docker 镜像,这可能需要一些时间,具体取决于你的网络速度。

第 3 步:配置 DNS

这是最关键的一步,你需要登录到你的域名注册商(如 GoDaddy, Namecheap, 阿里云等)的控制面板,为你的域名添加以下 DNS 记录。

假设你的邮件服务器域名是 mail.example.com,主域名是 example.com

  1. MX 记录:指定接收邮件的服务器。

    • 主机: (或直接写 example.com)
    • 类型: MX
    • : mail.example.com
    • 优先级: 10
  2. A 记录:将 mail.example.com 解析到你的服务器 IP。

    • 主机: mail
    • 类型: A
    • : 你的服务器公网IP
  3. AAAA 记录 (可选,如果你有 IPv6):将 mail.example.com 解析到你的 IPv6 地址。

    • 主机: mail
    • 类型: AAAA
    • : 你的服务器IPv6地址
  4. PTR 记录 (反向解析):这是极其重要的一步,它让你的 IP 地址反向解析到你的邮件服务器域名。这个记录通常需要在你的服务器提供商(如 VPS 商)的控制面板里设置,而不是在域名商那里。

    • 目标: 你的服务器公网IP
    • 主机名: mail.example.com
  5. SPF 记录:声明哪些 IP 地址有权代表你的域名发送邮件。

    • 主机: (或 example.com)
    • 类型: TXT
    • : v=spf1 mx ~all (表示只有 MX 记录中指定的服务器可以发信,~all 表示软失败,即其他发信尝试会被标记为可能垃圾邮件)
  6. DKIM 记录:用于验证邮件的真实性,防止伪造,Mailcow 会自动生成这一对密钥。

    • 你需要进入 Mailcow 的管理界面,在 "DKIM" 标签页下为你的域名生成密钥。
    • 然后将生成的 TXT 记录 复制并添加到你的域名 DNS 中。
    • 主机: dkim._domainkey (或类似,Mailcow 会提示)
    • 类型: TXT
    • : v=DKIM1; k=rsa; p=你的公钥...
  7. DMARC 记录:基于 SPF 和 DKIM 的策略。

    • 主机: _dmarc (或 dmarc)
    • 类型: TXT
    • : v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com (表示收到不合规的邮件进行隔离,并将报告发送到 postmaster 邮箱)

所有 DNS 修改生效后,等待几分钟到几小时。 你可以使用在线工具如 MXToolbox 来检查你的 DNS 记录是否配置正确。

第 4 步:访问管理界面和邮件客户端

  1. 启动服务

    docker-compose up -d

    Mailcow 现在会在后台启动所有必要的服务。

  2. 访问 Web 管理界面

    • 打开浏览器,访问 https://mail.example.com
    • 用户名: admin
    • 密码: moohoo (默认密码,请在首次登录后立即修改!)
    • 你可以添加域、添加用户、配置反垃圾邮件策略等。
  3. 配置邮件客户端 (如 Outlook, Thunderbird, 手机邮件 App):

    • IMAP (接收邮件):
      • 服务器: mail.example.com
      • 端口: 993
      • 加密: SSL/TLS
    • SMTP (发送邮件):
      • 服务器: mail.example.com
      • 端口: 465587
      • 加密 (465): SSL/TLS
      • 加密 (587): STARTTLS
    • 认证: 需要勾选,使用你的邮箱地址和密码。

传统方案 (Postfix + Dovecot)

如果你坚持要手动搭建,这里是一个高层次的概述:

  1. 安装核心组件

    sudo apt install postfix dovecot-imapd dovecot-pop3d

    在安装 Postfix 时,选择 "Internet Site" 并输入你的邮件服务器域名 (e.g., mail.example.com)。

  2. 配置 Postfix (/etc/postfix/main.cf)

    • 设置 myhostname, mydomain, myorigin
    • 配置 mydestination
    • 配置虚拟域和虚拟邮箱(用于存储用户邮件)。
    • 配置 SASL 认证(与 Dovecot 集成)。
    • 配置中继策略,防止开放中继。
  3. 配置 Dovecot

    • Dovecot 的主配置文件是 /etc/dovecot/dovecot.conf
    • 配置 mail_location 来指定邮件存储位置(通常是 maildir 格式)。
    • 配置 SSL/TLS 证书(强烈建议使用 Let's Encrypt 的 certbot)。
    • 配置认证机制,与 Postfix 集成。
  4. 用户管理

    • 通常使用 vmail 用户来管理所有邮件,并为每个邮箱创建一个系统用户或使用数据库(如 MySQL/PostgreSQL)来存储用户信息。
  5. 安全加固

    • 配置防火墙 (ufw)。
    • 使用 fail2ban 防止暴力破解。
    • 配置 SPF, DKIM, DMARC (手动过程非常繁琐)。
  6. 安装附加组件

    • 反垃圾邮件: SpamAssassin
    • 反病毒: ClamAV
    • Webmail: SOGo, Roundcube 或 Rainloop

这个过程非常漫长且容易出错,需要你阅读大量的官方文档和社区教程。


总结与建议

特性 Mailcow (推荐) Postfix + Dovecot (手动)
上手难度 ⭐☆☆☆☆ (非常简单) ⭐⭐⭐⭐⭐ (非常困难)
功能完整性 ⭐⭐⭐⭐⭐ (开箱即用) ⭐⭐⭐⭐⭐ (高度可定制)
维护成本
学习曲线 学习如何使用 Web UI 学习邮件系统底层原理
适合场景 个人、小型企业、快速部署 有经验的系统管理员、有特殊定制需求

再次强调:对于绝大多数用户,请选择 Mailcow,它能让你在几个小时内拥有一个功能完善、安全可靠的邮件服务器,而不是花费数周甚至数月的时间去调试一个手动搭建的系统。

祝你搭建顺利!

分享:
扫描分享到社交APP
上一篇
下一篇