使用 Mailu 自建邮箱!

因为某些原因(心血来潮),最近打算自建一个邮局。

在网上查了半天,最后我选择了 Mailu 作为了我的后端。

没有配置反向代理。

写在前面

警告:截止今天,我使用的腾讯轻量云服务器 IP 已经进入 ISP 阻止列表,无法发送邮件至 Outlook,Gmail 仍然可以正常发送。

欢迎在评论区分享相关的主机商。

要求

  1. 域名得有一个吧。(不推荐 .tk 啥的 容易寄)
  2. VPS 得有吧。有些主机商禁止了邮件服务,得自己去问。 这一台服务器尽量只部署邮局服务。
    VPS 最低配置:

    • 1G + 1G Swap (不开防病毒)
    • 3G + 1G Swap (开防病毒)
    • Docker + Compose

Stage 1 配置

https://setup.mailu.io/2.0/ 可以通过 GUI 自定义配置。

Step 1 – Initial configuration

Mailu storage path

保持默认,在根目录就行。不过你也可以自己改。

Main mail domain and server display name.

就是 @ 后面的东西。例如 [email protected] 就是 example.com

Postmaster local part

管理员账号地址,[email protected] 就是 me[email protected] 就是 admin

Choose how you wish to handle security TLS certificates

保持默认,没研究过。

Rate Limit (不是原标题)

速率限制,保持默认即可。

Website name

网站名称,支持 Unicode。我的就是 ImkenのMail。

Linked Website URL

管理界面侧边栏(上图)中的“网站”。

Enable the admin UI (and path to the admin UI)

建议启用,不启用没法配置后面的。

Enable the API (and path to the API)

随意,有 API 需求的开,没有的就关。

Step 2 – Pick some features

Enable Web email client (and path to the Web email client)

自带的网页邮箱的选项。我选的 roundcube。之后我都是基于 roundcube 的。(其实问题不大)

下面的 /webmail 就是网页邮箱在管理域名下的目录。

mail.example.com
                /admin
                /webmail
Enable the antivirus service

防病毒,自用不建议开。浪费资源(你都自建邮局了相信网络习惯也很好吧)。

Enable the webdav service

我没开,应该问题不大。同步通讯录日历啥的,很商务。

Enable fetchmail

接受其它邮箱的邮件的插件开关,有点像 QQ 邮箱的代收。

Enable oletools

比 AntiVirus 效率更高的安全工具,建议打开。

Step 3 – expose Mailu to the world

IPv4 listen address

内网网卡地址,ip a / ifconfig 对应网卡的 IP。(虽然官方不推荐 0.0.0.0 / :: 的默认地址,但其实问题不大,只要 Docker 里面不跟主机网段冲突就好)

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.114  netmask 255.255.252.0  broadcast 10.0.3.255
        inet6 fe80::...
Subnet of the docker network.

保持默认就行。之前有跑 Docker 容器的检查一下网段冲突。

Enable IPv6

呃呃这个就自己斟酌一下。我主机反正不支持(

Enable an internal DNS resolver (unbound)

默认打开,要不然发邮件全被 Reject。

Public hostnames

下面的文本框填管理域名。详细玩法要看文档,我没研究。

记得给管理域名加上 A 记录。CF 不要开代理。

然后结束配置,点 Setup Mailu

跑容器

按照跳转到的页面操作就行。

mkdir /mailu
cd /mailu
wget https://setup.mailu.io/2.0/file/{uuid}/docker-compose.yml
wget https://setup.mailu.io/2.0/file/{uuid}/mailu.env # 官网生成了命令,自己去复制

启动容器。(灵活变通一下,官网的 docker compose 中间没有横杠,需要自己加上)

docker-compose -p mailu up -d

创建管理员账户。(复制官网上的指令好吧)

docker-compose -p mailu exec admin flask mailu admin admin example.com {PASSWORD}

然后,等一会,访问 {管理地址}/admin,就可以登录了。

可以看到系统负载不算高。

反代很麻烦,不建议跑反代。

Stage 2 配置

DNS

你现在应该已经在管理页面了。如果在 Roundcube Webmail 页面, 可以点击边栏的 Mailu 图标进入管理页。

在管理页面,侧栏点击“邮件域”,进入“域列表”页面。点击“详细信息”图标。

进入之后,可以看到需要添加的 DNS 记录。需要先点击右上角“生成密钥”,然后添加 DNS 记录(会添加 DKIM & DMARC)。

(大段打码)

不要导入 DKIM 公钥。

如果你用 Cloudflare DNS,这里有一个小技巧可以很方便的导入 DNS 记录:把所有待导入的 DNS 记录复制到一个文本文档里,然后点“导入和导出”就可以导入了。记得取消勾选“代理已导入的 DNS 记录”。

点击“上传”即可。

解除各大厂商的 IP 保护

先用其它邮箱给域名邮箱(管理邮箱)发一封邮件,确认可以收到。建议检查一下防火墙,问一下主机商。

访问 https://check.spamhaus.org/,输入自己服务器的 IP。

如果出现 This IP is listed in the Policy Blocklist (PBL),并且没有出现在其它的列表里,就可以很方便的解封了。没有出现当然更好。

翻到最底部 Show Details,选中 “I am running my own mail server”,然后下一步。

然后就填写这份表单。电子邮件填你的域名邮箱。真名建议填一个“名+姓”的英文。底下的问题描述如实填写就行,机翻都可以。

提交之后,等邮件确认,一般来说域名邮箱自行确认就解封了。大概有 12h 的生效延迟。(如果没有就等审核,审核不过就认命吧[hidden]或者联系Imken交流一下?[/hidden])

发测试邮件记得勾选“投递状态通知”。

功能 & 玩法

邮件加密 & 签名

先生成一个密钥对。(内置生成 4096 好像会挂 挂了)

设置里面打开“启用邮件加密和签名”(设置/选项/加密),这样可以查看已签名的邮件。(否侧500)

别名

邮件域->(域列表)左边有一个 @ 按钮,可以设置别名。

设置别名之后去 Webmail 添加身份。(设置/发件人身份/建立)

转发

管理页首页底下就是。

END.