终于搞定了自己的邮箱服务器
前两年就买了自己的泡面域名,搭了两个给自己用的小 app,还建了 VPN,但是我一直想有一个自己的邮箱,不是什么 Gmail 或者 Hotmail 这种大众的,而是一个自己特色的域名邮箱。以前就试着关注过,发现了一些可以一键安装的简单化方案,但是发现他们要求的机器属性都比较高,而我的小破站本来就是玩儿玩儿的属性,没有很多资源——因此巨便宜——所以一时搁置了下来。
但是!最近再一次折腾劲儿上来,去搜寻了下有什么好的方案没有,无意间发现了一款 go 写的 mail server—— mox,号称是 modern, secure, all-in-one email server。而且系统要求属性较低,我也搞过些 go 的后端,知道这玩意儿跟 java 这种吃资源的大户比起来简直是省钱利器。所以信心一下子就起来了,觉得可以,低价位建立自己的邮件系统说不定可以大有可为啊~
于是在周五就开始入坑,真的是搞了好久。除去一些必要活动,周五夜里搞到 1 点,周六夜里搞到 10 点,躺沙发上直接就睡着了,半夜 3 点醒过来就气不过,为什么就搞不定呢,又跑去搞,搞到早上 6 点还是没搞好。捱不过又去睡了一会,然后 7 点终于起来,脑子里更清晰了,又把几个小问题解决了一下。现在终于可以稳定地用这个服务器来发送邮件了,也就是说我终于有自己的骚气域名 xxx@paomian.de 邮箱了啊哈哈哈 🤣,在此放一个 blog@paomian.de,欢迎朋友们来信,这个邮箱就专门给这个小破站当听筒了。
发现有很多不懂的小知识点会不断阻碍我的成功部署,这次是从上到下/从下到上,我把所有的小的协议都理了一遍,也更清楚什么是 DNS 的那个 Records。还有很多 Linux 命令我也更熟悉了,收获还挺多~ 可以回头写一篇小文章了,题目先按下:怎么用 mox 部署自己的邮件服务。具体的难点也先列出来,准备一一写下来:
- 兼容现有网站 - 自己的服务器本来就有服务在跑,不想/能单独作为邮件服务器
- unbound 部署,因为需要 DNSSEC 认证,所以需要自己部署一个服务器内部的 DNS resolver,开始看着简介以为 unbound 非常好部署,结果这个是我花时间最长的
- SSL cert for mox,给 mox 设置我自己网站的认证证书,因为是要兼容现有网站,所以不能直接用 mox 自动部署那一套
- DNS records 设置,mox 在设置初期会给你相应的需要设置的 DNS records,但是我小机器又不是 DNS server,所以还要找我的域名商去设置这些,痛点一大堆:
- TXT type 的特殊格式,有些多行应该怎么解决
- SRV type 的特殊格式
- 域名商给出来的 web 页面只允许固定数量的 records,我的超过了一大堆怎么办
- 用 API 的方式去设置/验证自己的 DNS records
- 服务器防火墙 ufw 设置
- 内部/公共监听 IP (listener)绑定,内部的有的被占用怎么去删除
- 如何进入 admin 页面,因为 mox 设置的有自己的 admin 页面,不过是在服务器的 localhost 之上,这就需要
ssh tunnel
来帮忙了,架设一个自己电脑和部署的服务器之间的桥梁,以便可以在自己的浏览器上登陆服务器端的管理员页面。 - 设置 DANE 协议