一看就会:在VPS上搭建Mailu邮件服务器

2025-05-01 17:37:36 2点赞 9收藏 0评论

既然都来了,肯定知道自建邮件服务器是一个很好玩的东东!能够满足小型企业的收发需求,如果你是做邮件营销,当然也可以用。但是把握一个度。

我计划是把所有的开源邮件程序都演示一遍,时间跨度可能有点大,请大家点点收藏关注。今天先来讲讲:Mailu

Mailu 简介

Mailu 是一个模块化的邮件服务器套件,包含了一个完整的邮件堆栈(SMTP, IMAP, POP3, Webmail, 反垃圾邮件, 杀毒等)。它是一个强大、灵活且易于部署的开源邮件解决方案,它基于 Docker 容器技术,让搭建自己的邮件系统变得前所未有的简单。它的优点:

  • 开源免费: 无需授权费用。

  • 基于 Docker: 部署简单,易于维护和升级。

  • 功能丰富: 支持多域名、垃圾邮件过滤、病毒扫描、Webmail (Roundcube/Rainloop)、CalDAV/CardDAV 等。

  • 用户友好: 提供了直观的 Web 管理界面。

准备工作

在开始安装之前,你需要准备好以下几项:

  1. 一台运行 Ubuntu 的服务器 (VPS 或云服务器):

    • 硬件要求: 建议至少 4GB 内存和足够的存储空间,我用的是2核4G,内存小容易卡死。系统我选用的是ubuntu22.04。

    • 网络: 端口 25 必须是开放的! 这是发送邮件的关键端口。很多云服务商默认会封锁端口 25,请提前确认或申请开通这里,我是用 digitalocean 的vps给大家做的演示,直接开了25端口。

    • 干净的 IP 地址: 一个没有被列入常见黑名单的 IP 地址对于邮件送达率至关重要,好在是digitalocean给的IP还是很干净的。

    • 反向 DNS (PTR 记录): PTR 记录应指向你的邮件服务器子域名。有些 VPS 提供商可以在购买时直接设置,或在控制面板中设置,确保它与你的主机名一致。digitalocean的vps要设置反向DNS,将主机名称改成你的邮箱域名即可,虽然简单,但是这一步非常重要!

一看就会:在VPS上搭建Mailu邮件服务器
  1. 一个你拥有并管理的域名: 我用的是一个免费的workmail.eu.org。

  2. SSH 客户端: 用于连接到你的 Ubuntu 服务器(如 PuTTY, Xshell, OpenSSH 命令等,我使用的是termius)。

安装步骤详解

步骤一:配置域名 DNS 记录

在开始服务器操作前,我们先配置必要的 DNS 记录。DNS 的修改可能需要一些时间来全球生效,所以提前配置可以节省等待时间。

登录你的域名注册商或 DNS 服务提供商的控制面板,添加或修改以下记录:

  1. A 记录 (邮件服务器主机名):

    • 类型:A

    • 主机记录 (Host):填写你的邮件服务器子域名,例如 mail

    • 记录值 (Value):填写你的服务器公网 IP 地址

    • TTL:建议设置一个较小的值(如 600 或 300)以便快速更新

  2. MX 记录 (邮件交换记录):

    • 类型:MX

    • 主机记录 (Host):通常填写 @ 或 yourdomain.com

    • 记录值 (Value):填写你的邮件服务器的完全限定域名 (FQDN),即你在上面设置的 A 记录主机名加上你的域名,例如 mail.workmail.eu.org

    • 优先级 (Priority):设置一个数值,例如 10 (数值越低优先级越高)

    • TTL:建议设置一个较小的值

一看就会:在VPS上搭建Mailu邮件服务器一看就会:在VPS上搭建Mailu邮件服务器

步骤二:准备 Ubuntu 服务器环境

通过 SSH 连接到你的 Ubuntu 服务器。

  1. 更新系统安装依赖:
    这是一个好习惯,确保你的系统是最新的。

    sudo apt update && sudo apt upgrade -y sudo apt install -y ca-certificates curl gnupg gnupg2 ca-certificates software-properties-common

步骤三:安装 Docker 和 Docker Compose

Mailu 运行在 Docker 容器中,所以需要先安装 Docker 环境。

  1. 安装 Docker Engine:

    1. 添加Docker官方GPG密钥和仓库
    bash
    # 创建目录(如果不存在)

    sudo install -m 0755 -d /etc/apt/keyrings

    # 下载并添加GPG密钥

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

    # 添加APT仓库

    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

    # 更新APT索引

    sudo apt update


    2. 安装Docker Engine

    sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin


    3. 验证安装

    sudo docker run hello-world

    如果看到欢迎信息,说明安装成功。

  2. 注意:如果你的 Ubuntu 版本较旧,或者想安装独立版本的 docker-compose,请参考 Docker 官方文档,步骤如下:

    # (可选)安装独立版本的 docker-compose # 查找最新版本:https://github.com/docker/compose/releases DOCKER_COMPOSE_VERSION="v2.20.2" # 替换为最新版本号 sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # 验证安装 docker-compose --version

一看就会:在VPS上搭建Mailu邮件服务器

步骤四:生成 Mailu 配置文件

Mailu 提供了一个在线配置工具,非常方便。

  1. 访问配置网站:
    在浏览器中访问 https://setup.mailu.io/。

  2. 填写配置信息:
    根据你的情况填写以下信息:

    • Mail domain: 你的主邮件域名,例如 yourdomain.com。

    • Server name: 你的邮件服务器主机名 (FQDN),例如 mail.yourdomain.com。

    • IP addresses (IPv4/IPv6): 你的服务器公网 IP 地址。

    • Let's Encrypt: 勾选此项以使用 Let's Encrypt 自动生成和续期 SSL 证书 (推荐)。

    • Admin interface: 后台管理界面的 URL 前缀,默认 /admin 即可。

    • Authentication rate limit: 登录失败速率限制。

    • Website name/Linked website: 可自定义网站名称和链接。

    • Enable admin UI/API: 勾选启用管理界面。

    • Webmail: 选择一个 Webmail 客户端,如 Roundcube (推荐)。

    • Features: 根据需要勾选启用的功能,如 Antivirus, Webdav, Fetchmail 等。

    填写完毕后,点击底部的 "Setup Mailu" 按钮。这个步骤新手也不用怕,有些设置根本不用动,除非你有特别的需求。如图:

一看就会:在VPS上搭建Mailu邮件服务器
一看就会:在VPS上搭建Mailu邮件服务器
一看就会:在VPS上搭建Mailu邮件服务器
  1. 获取配置文件下载命令:
    网站会生成一些命令。这些命令会下载 Mailu 的核心配置文件 docker-compose.yml 和环境变量文件 .env。请复制这些生成的命令,因为 .env 文件中的一些密钥是为你本次生成独有的!

一看就会:在VPS上搭建Mailu邮件服务器

步骤五:部署 Mailu

回到你的 SSH 终端,执行以下步骤。

  1. 创建 Mailu 安装目录:

    sudo mkdir /mailu cd /mailu

  2. 下载配置文件:
    执行你在 setup.mailu.io 网站上复制的 curl 命令,将 docker-compose.yml 和 .env 文件下载到 /mailu 目录。

    # 示例命令,请替换为你实际复制的命令 curl -o docker-compose.yml https://setup.mailu.io/core/master/docker-compose.yml curl -o .env https://setup.mailu.io/core/master/dotenv

  3. 启动 Mailu 服务:
    使用 Docker Compose 以后台模式启动所有 Mailu 相关的容器。

    sudo docker compose up -d

一看就会:在VPS上搭建Mailu邮件服务器
  1. Docker 会自动下载所需的镜像并启动服务。这个过程可能需要几分钟,取决于你的网络速度。

  2. 检查服务状态 (可选):

    sudo docker compose ps

    你应该看到 Mailu 的各个容器(如 admin, antispam, antivirus, imap, smtp, webmail 等)都在运行状态。

步骤六:创建管理员用户

Mailu 启动后,需要创建一个管理员账号来登录 Web 管理界面。

docker compose -p mailu exec admin flask mailu admin admin mail.workmail.eu.org PASSWORD

请务必:

  • 将 yourdomain.com 替换为你的主邮件域名。

  • 将 your_chosen_secure_password 替换为一个强密码,并务必牢记或保存在安全的地方!

  • 我这里的管理员邮箱将是 admin@mail.workmail.eu.org,有点长,其实可以设置为 admin@workmail.eu.org

命令执行成功后,会提示管理员用户已创建。

步骤七:访问 Mailu 管理面板

现在你可以通过浏览器访问 Mailu 的 Web 管理界面了。

  1. 访问地址:
    在浏览器中输入 https://mail.yourdomain.com/admin (使用你在 DNS 中设置的邮件服务器主机名)。

  2. 登录:
    使用刚刚创建的管理员账号 admin@yourdomain.com 和你设置的密码进行登录。

成功登录后,你就可以在管理面板中进行各种配置,如添加新的邮件域名、创建邮件用户、设置别名、邮件转发等。

一看就会:在VPS上搭建Mailu邮件服务器一看就会:在VPS上搭建Mailu邮件服务器

步骤八:完善 DNS 记录 (SPF, DKIM, DMARC)

为了提高邮件的送达率、防止邮件被标记为垃圾邮件,并增强邮件安全性,强烈建议配置 SPF, DKIM 和 DMARC 记录。在管理后台,点击重新生成密钥即可生成如下密钥:

一看就会:在VPS上搭建Mailu邮件服务器
  1. SPF (Sender Policy Framework):
    添加一条 TXT 记录,告诉接收方哪些 IP 地址被授权代表你的域名发送邮件。

    • 类型:TXT

    • 主机记录 (Host):通常填写 @ 或 yourdomain.com

    • 记录值 (Value):v=spf1 mx -all (这是一个基本的示例,表示只有你的 MX 记录指向的服务器被授权发送邮件,其他来源都拒绝 -all)

      • 更推荐的值通常包含 a 和 mx,如 v=spf1 a mx -all,具体取决于你的设置。

      • 如果你只用 Mailu 发信,v=spf1 mx -all 通常是合适的。

      • 如果你还需要通过其他服务(如邮件列表服务)发信,可能需要包含 include:。

    • TTL:建议设置一个较小的值

  2. DKIM (DomainKeys Identified Mail):
    DKIM 为你的邮件添加数字签名,接收方可以通过你的 DNS 记录验证签名的有效性。

    • 登录 Mailu 管理面板。

    • 找到 DKIM 设置部分(通常在域名设置或高级设置里)。

    • 生成 DKIM 密钥。

    • Mailu 会给你一个主机记录名(通常是 dkim._domainkey 或类似名称)和一个很长的密钥值。

    • 在你的 DNS 控制面板添加一条 TXT 记录:

      • 类型:TXT

      • 主机记录 (Host):Mailu 提供的主机记录名(例如 dkim._domainkey)

      • 记录值 (Value):Mailu 提供的 DKIM 密钥值(通常是 v=DKIM1; k=rsa; p=... 开头的一串文本)

      • TTL:建议设置一个较小的值

  3. DMARC (Domain-based Message Authentication, Reporting & Conformance):
    DMARC 基于 SPF 和 DKIM,告诉接收方如果 SPF 和 DKIM 验证失败,应该如何处理这些邮件(监控、隔离到垃圾邮件、拒绝),并且可以请求接收方发送报告。

    • 在你的 DNS 控制面板添加一条 TXT 记录:

      • 类型:TXT

      • 主机记录 (Host):_dmarc

      • 记录值 (Value):v=DMARC1; p=quarantine; sp=quarantine; rua=mailto:your_report_email@yourdomain.com (这是一个示例,p=quarantine 表示隔离到垃圾邮件;rua 后面的邮箱用于接收报告,请替换为你的实际邮箱)

        • p= 的值可以是 none (监控不处理), quarantine (隔离/垃圾邮件), reject (拒绝)。刚开始建议用 none 或 quarantine。

      • TTL:建议设置一个较小的值

请等待所有 DNS 记录生效 (可能需要几分钟到几小时不等)。 你可以使用在线 DNS 检查工具(如 MXToolbox)来验证你的 A, MX, SPF, DKIM, DMARC 记录是否已正确发布并指向你的服务器。

全部设置完成:

一看就会:在VPS上搭建Mailu邮件服务器

测试邮件功能

  1. 创建用户: 在 Mailu 管理面板中为你自己的域名创建一个或多个邮件用户(例如 info@yourdomain.com, yourname@yourdomain.com)。

  2. 访问 Webmail: 访问 https://mail.yourdomain.com/ (不带 /admin),使用你创建的邮件用户登录。

  3. 发送测试邮件: 从你的新邮件地址向一个外部邮箱(如 Gmail, Outlook 等)发送一封测试邮件。

  4. 检查接收: 从外部邮箱回复这封测试邮件,看是否能发送到你的新邮件地址,并在 Webmail 中收到。

  5. 检查邮件头: 在外部邮箱接收到的测试邮件中,查看邮件头信息,确认 SPF, DKIM, DMARC 是否显示为 PASS。

如果邮件发送和接收正常,并且 DNS 记录检查无误,恭喜你!你已经成功搭建了自己的 Mailu 邮件服务器。

一看就会:在VPS上搭建Mailu邮件服务器

总结

通过以上步骤,我们成功地在 Ubuntu 系统上使用 Docker 部署了 Mailu 邮件服务器,并进行了基础的 DNS 配置。现在你拥有了一个功能完备、自主可控的邮件系统。

Mailu 还有很多高级功能值得探索,例如设置邮件别名、用户配额、自动回复、Catch-all 地址、Fetchmail 远程收取邮件等。你可以登录管理面板,根据自己的需求进行进一步配置。

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
9
扫一下,分享更方便,购买更轻松