搭建基于Docker的域名邮箱Mailu.io

350次阅读
没有评论

 系统环境要求

由于 Mailu 基于 Docker, 因此几乎可以在任何版本的 Linux 发行版上安装使用。安装前,请确保您的服务器有 2 GB 的内存,并拥有一个独立 IP 地址。

在安装之前,您需要确保您的 VPS 的 25 端口是开放的。您可以在您的 VPS 上执行下面的命令来测试 25 端口是否开放。

1
telnet smtp.aol.com 25

如果看到类似下面的回显,则说明端口是开放的:

1
2
3
4
Trying 74.6.141.50…
Connected to smtp.aol.g03.yahoodns.net.
Escape character is‘^]’.
220 smtp.mail.yahoo.com ESMTP ready

如果显示超时,说明 25 端口不开放;您需要向主机商申请开放 25 端口,或者更换一台 VPS.

本文中,我们将在一台 Ubuntu 20.04 LTS 64 bit 操作系统的 VPS 中安装。在其他操作系统中的安装步骤类似。

 

2, 主机名与 DNS 设置

设置好主机名(服务器名, Hostname)是所有邮件服务器必不可少的一步,否则在发信时将会遇到各种错误。

如果您的域名为 example.com, 那么我建议您的邮件服务器主机名可以设置为 mail.example.com 或者 mx.example.com.  如果您不知道如何设置服务器名, 请参考我们的图文视频教程

下文中,我们将以 mx.qing.su 作为主机名介绍整个系统的部署。当您设置好主机名之后(以 mx.qing.su 为例),在 SSH 中执行命令:

1
hostname

此时您应当看到系统显示 mx.  如果系统显示mx.qing.su, 说明主机名设置 错误,请重新设置。

在 SSH 中执行命令:

1
hostname -f

此时您应当看到系统显示mx.qing.su.

设置好主机名之后,您还需要设置 DNS 解析记录。DNS 记录的设置分为两部分,一部分需要在搭建邮箱之前设置,另一部分 (DKIM) 在搭建邮箱之后设置。我们先介绍第一部分。假设您的服务器 IP 地址为 88.88.88.88, 那么您需要到您域名的 DNS 服务提供商处,添加下面的五条记录:

  • 将域名 qing.su 设置任意一条 A 记录或者 ALIAS 记录,值为任意。如果您不使用该域名做网站,您可以设置一条 A 记录,解析到 127.0.0.1.  请注意,根域名不能设置 CNAME 记录。
  • 将域名 mx.qing.su 设置 A 记录,解析到 88.88.88.88
  • 将域名 qing.su 设置 MX 记录,优先级为 10,解析值为 mx.qing.su
  • SPF: 将域名 qing.su 设置 TXT 记录,解析值为”v=spf1 mx ~all”
  • DMARC: 将域名 _dmarc.qing.su 设置 TXT 记录,解析值为”v=DMARC1; p=none; pct=100; rua=mailto:admin@qing.su”

然后,您需要到您的 VPS 服务商处,为您的 IP 地址设置逆向 DNS 记录(Reverse DNS, PTR), 将 88.88.88.88 解析到 mx.qing.su.

设置好这些之后,我们就可以开始部署 Mailu 域名邮箱了。

 

3, 安装 Docker 与 Docker Compose

前面说过,Mailu 基于 Docker.  这里我将以 Ubuntu 20.04 LTS 操作系统为例,简要记录 Docker 与 Docker Compose 的安装。如果您对 Docker 非常了解,可以跳过这一部分。如果您使用的是其他操作系统,可以在这里 (https://docs.docker.com/engine/install/, https://docs.docker.com/compose/install/) 找到对应的安装步骤。

安装 Docker Engine:

1
2
3
4
5
6
apt-get update && apt-get upgrade
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add –
add-apt-repository“deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io

安装 Docker Compose:

1
2
curl -L“https://github.com/docker/compose/releases/download/1.27.2/docker-compose-$(uname -s)-$(uname -m)”-o /usr/local/bin/docker-compose
chmod  x /usr/local/bin/docker-compose

 

4, 配置 Mailu 服务器

Mailu 服务器提供了一个自动生成配置文件的网页,非常方便。因此,我们将使用这个网页来生成配置文件。它的地址是https://setup.mailu.io/

打开网页后,第一步是选择版本与 Docker 管理方式。这里我们选择最新版 1.7, Docker 管理方式选择 Docker.

搭建基于 Docker 的域名邮箱 Mailu.io

第二步,需要设置路径与域名信息。请按照下图填写,并替换为您的域名。请注意,Main mail domain and server display name 应该填写您的根域名,比如我这里是 qing.su; 而 Linked Website URL, 则填写您的邮件服务器主机名,这里我们填写 https://mx.qing.su.  在 TLS certificates 这里,我们选择 letsencrypt, 系统将会自动帮我们生成 Let’s Encrypt 证书。您也可以选择自己提供证书。下方的 Enable the admin UI 请务必勾选,否则系统将不会安装 Web 管理面板。

搭建基于 Docker 的域名邮箱 Mailu.io

第三步,选择网页邮箱的面板。这里可以选择 Roundcube 和 Rainloop, 您可以根据个人偏好来选择。我这里推荐 Rainloop,它更美观,且对移动端的适配更好。Rainloop 支持中文显示。下面的三个选项分别是杀毒、WebDAV、邮件代收,您可以根据自己的需要来勾选。

搭建基于 Docker 的域名邮箱 Mailu.io

第四步,配置 IP 与主机名。请在 IP listen address 中填写您服务器的 IP 地址,比如 88.88.88.88.  第二行是设置 Docker 的子网,一般保持默认即可。IPv6 建议不启用。Unbound resolver 建议启用。最后一栏,填写您的服务器的长主机名,我这里是 mx.qing.su.

搭建基于 Docker 的域名邮箱 Mailu.io

第五步,也是最后一步,选择数据库。这里我们选择最简单的 Sqlite 即可。您也可以选择其他的数据库,比如 MySQL 或者 PostgreSQL.

搭建基于 Docker 的域名邮箱 Mailu.io

选择完毕后,点击 Setup Mailu, 系统就会自动帮你生成好配置文件了,如下图。

搭建基于 Docker 的域名邮箱 Mailu.io

 

5, 运行 Mailu 服务器

按照上述步骤生成好 Mailu 配置文件,就可以运行 Mailu 服务器了。回到 SSH, 执行:

1
2
mkdir /mailu
cd /mailu

然后找到之前那个页面生成的配置文件链接,下载到 /mailu 文件夹中:

1
2
wget http://setup.mailu.io/1.7/file/edda7279-qing-su-qing-su-04773fdf23f9/docker-compose.yml
wget http://setup.mailu.io/1.7/file/edda7279-qing-su-qing-su-04773fdf23f9/mailu.env

最后,使用 Docker compose 运行。

1
docker-compose -p mailu up -d

初次使用,系统将会下载几个 Docker 镜像,需要数分钟的时间。等系统提示完成后,Mailu 就处于运行状态了。

部分朋友在初次运行 Mailu 的时候会遇到类似于下图的报错:

搭建基于 Docker 的域名邮箱 Mailu.io

如果遇到这种情况,您可以编辑 docker-compose.yml 文件,删除掉所有绑定了 [::1] 地址与端口的行,然后重新运行上面的命令即可。

 

6, 使用 Mailu 域名邮箱

在第一次登录 Mailu 服务器后台面板之前,需要新建一个管理员账户。在 SSH 中执行:

1
docker-compose -p mailu exec admin flask mailu admin hello example.com qing.su

这样,我们就创建了一个用户名为 hello@example.com, 密码为 qing.su 的管理员账户。请替换为您需要的值。

创建完毕,您就可以在浏览器中访问 https://mx.qing.su/admin 登录您的管理员面板了,如下图。

搭建基于 Docker 的域名邮箱 Mailu.io

点击左侧 Mail Domains, 就能管理我们的邮箱域名。在域名管理界面,点击右上角 New domain, 即可添加域名。点击下图中的红框部分,即可添加用户;点击绿框部分,则进入域名详情页。

搭建基于 Docker 的域名邮箱 Mailu.io

点击上图中的红框,进入用户管理界面,如下图:

搭建基于 Docker 的域名邮箱 Mailu.io

这里我们可以输入邮箱前缀,密码,姓名。下方的 Features and quotas 可以设置邮箱容量,并且可以设置是否允许 IMAP 和 POP3 客户端登录收信。设置完毕后,点击 Save, 就添加好了用户。

在域名管理界面,点击之前那张图的绿框部分,则进入了域名详情页。我们点击右上角的 Generate keys, 即可生成 DKIM 记录。如下图。

搭建基于 Docker 的域名邮箱 Mailu.io

根据上图的信息,您需要去您的 DNS 服务器运营商设置域名的 DKIM 记录。比如,以我的 qing.su 域名为例,我需要设置下面的 DKIM 记录:

  • 将域名 dkim._domainkey.qing.su 设置 TXT 记录,解析值为”v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK8nX8NbQ/16bb7zUqZif39emugOQpBDTXeLTqKhmrhPHFt5RgrDj9ibL18ovXKsQONjXZ qNE407 KQZWcVLFvCQ6jtl1ojSfnJGeltGRqgfjw0nIAFQ9P6UVO5fiyrnxR4NZ MDKvsv33NMgJxpEH6O8hQ/K2mDM mDcIIbOwQIDAQAB”

这样,我们就完成了全部的 DNS 设置。此时,您的域名邮箱已经全部搭建并配置完毕,可以收发信了。

访问 https://mx.qing.su 就会自动跳转到网页邮箱的登录界面。如果您在配置时选择了 Rainloop, 则第一次登录时可以在界面上选择语言,比如简体中文。

我们使用 mail-tester.com 测试发信,可以看到评分为满分 10 分。

搭建基于 Docker 的域名邮箱 Mailu.io

 

 

综上,我们使用了 Mailu.io 这款基于 Docker 的多功能的邮件服务器程序,在 VPS 上搭建了属于自己的域名邮箱。如果您有任何疑问,欢迎在这里留言,我将尽力解答。如果您喜欢这篇文章,欢迎转发给朋友们。

正文完
 0
评论(没有评论)
验证码