前言
之前发了一篇文章介绍邮件搭建的准备工作,具体可以看这里
那篇文章可能比较乱,毕竟内容基本就是实录一次邮件服务器搭建的准备工作,其中的选购也好,配置也好,根据大家的不同需求都是会存在变化的,所以我只能说是我自己的方案 
不同的主机商,不同的 DNS 提供商,不同的域名提供商都会有不同的准备流程,但最重要的就是相同的
- DNS 配置(DNS 提供商相关)
- DNSSEC 配置(DNS 提供商和域名提供商相关)
- 开启25端口(主机商相关)
- rDNS 配置(主机商相关)
- 确定邮件服务器工具和部署方案
正好现在我有为公司搭建邮件服务器的工作,而之前也确定了这些前提条件
我此次的搭建方案是
- 使用 Mox 搭建完整的邮件服务
- 使用 RoundcubeMail Docker 作为现代化的收发邮件网页客户端
- 使用 CrunchBits 作为主机商
- 使用 Mox 作为服务器上唯一的服务器配置(占用80,443端口)
- 不使用 Mox 的 Docker 镜像搭建
碎碎念
非常不凑巧的是,CrunchBits 现在如果不进行认证也是不能使用25端口的,所以此次教程后我还得做一下认证...不过不重要,没有25端口开着邮件服务器也是能搭的,不能用而已 


正式步骤
好的,废话不多说,我们开始这个 Mox 邮件服务器的搭建工作了(为什么选择 Mox?可以看之前的文章的说明)
其实 Mox 官网有相关教程,如果有兴趣也可以去看看
1. 创建用户和下载服务器文件
首先开启小鸡的终端,分别输入以下内容
sudo -i
useradd -m -d /home/mox mox
cd /home/mox
这一步创建了一个用于邮件服务运行的用户 mox 并指定用户目录为 /home/mox。这个 mox 是可以根据需求更改成其它名称的,如果要这么做,后文会提到要做出哪些调整。创建后进入对应的用户目录。请注意,虽然 Mox 的设计是用单一用户权限运行来保证服务器安全,但是整个部署过程都会用到管理员权限,部分操作时我也和官方略有差异来保证某些兼容性
接下来是下载服务器文件。Mox 的服务器是单一 Go 程序,当然你如果服务器上已经有 Go 的各种依赖也可以选择下载不含依赖的可执行文件版本
官方给出的网站在这里
链接默认是给 AMD64 架构的 Linux 系统使用的,如果你的系统有区别,请在开启下载界面后下拉找到其他发行版本

你可以用各种方法把下载的文件丢到服务器上,像是 sFTP 或者 SCP 上传,或者直接用 cURL 或者 wGet
为了简便我们这次直接用发文时最新的 0.0.10 版本的 AMD64 Linux 链接,使用 wGet 直接下载到服务器上
mv mox-v0.0.10-go1.22.2 mox
chmod x mox
除了 wGet 下载,以上命令我们用 mv 指令将文件重命名为 mox 并且用 chmod 赋予运行权限
如果会的话,你也可以使用 ln -s 创建软链接,这可以方便后期更新程序版本
2. 快速生成配置文件和检查
准备好文件后直接执行以下指令(请保证目前位于工作目录 /home/mox ):
sudo -u mox ./mox quickstart -hostname mail.example.com [email protected]
以上指令我们使用 mox 用户权限执行快速生成配置文件的指令,并不会开启服务器。example.com 请更换成自己的域名。[email protected] 是指定的管理员账号地址,使用 [email protected] 或者 [email protected] 或任何其他前缀也都是可以的
使用了 mox 用户的权限执行是为了保证配置文件在 mox 用户之下,以防未来执行时出现文件访问权限不足的问题
你也可以用 chown -R mox:mox * 达到同样的效果,而这么做就不必添加 sudo -u mox 这部分命令了
-hostname 是用来指定服务器名称的,否则 Mox 默认会采用你的小鸡的名称,而很多时候你并不会直接把小鸡名字设置成 mail.example.com
执行完后会有一大堆输出,建议全部复制保存起来以备使用。如果看到最后有
Enjoy!
PS: If you want to run mox along side an existing webserver that uses port 443
and 80, see "mox help quickstart" with the -existing-webserver option.
这就表示成功生成了配置文件,否则就表示存在问题。这时不要急着去启动服务器,而是使用 nano, vi 或 vim 看看位于 ./config 的 mox.conf 配置文件。注意这个文件是 sconf 格式,严格要求文件格式使用 Tab 缩进,不能使用空格
示范指令:
sudo -u mox nano ./config/mox.conf
首先我们要看的是其中的 User 区域。如果你用的是默认设置,那么让此处留着默认值 mox 即可,否则修改成你使用的其他用户名
接着你要看的是 Listeners 区域的 public 部分,这里的默认值是不开启任何互联网入口的,这对大部分人来说不是非常方便
按官方建议,如果你会使用 SSH 隧道,更推荐将远程路径 Map 到本地电脑上,否则请跟着以下步骤开放互联网管理员/用户访问
在 mox.conf 的 AutoconfigHTTPS 后面添加(请务必保持 Tab 数量的格式要求否则服务器无法启动):
AdminHTTP:
Enabled: true
AdminHTTPS:
Enabled: true
AccountHTTP:
Enabled: true
AccountHTTPS:
Enabled: true
(可选)开启内置的网页客户端(界面相当简陋):
WebmailHTTP:
Enabled: true
WebmailHTTPS:
Enabled: true
Mox 可以自动检测是否是使用了 VPC 的 NAT 小鸡,但如果没有检测出你的配置,请把 Public 区域中的 IPs 部分换成你的 NAT 内部 IP 并在之后添加:
NATIPs:
-
-
至此基本的配置检测就完成了。其他的部分有疑问?请检阅官方配置参考文档
3. 测试运行和调整配置
此时执行 ./mox serve 就可以开启服务器了!请注意这个指令只能使用 root 权限执行,否则权限将不足以运行服务器。
防止终端窗口意外中断可以使用 tmux, screen 等工具,具体请自行查阅
然后在本地浏览器输入 https://mail.example.com/admin/,会要求输入管理员密码。这个密码在最初我们执行 QuickStart 指令时会出现在屏幕上,如果不记得了或者遗失可以先关掉服务器,然后在终端输入
sudo -u mox ./mox setadminpassword
即可重置到指定值
官方完整指令参考文档请看这里
结语
至此我们完成了服务器的基础部署。但是除此之外还有服务器的后期调整工作,但又是因为时间问题,我将留到下一篇文章对此进行说明~~ 
声明: 本文全部由本人编写,除参考链接无任何第三方参考内容,允许不经过授权在标明来源的情况下引用本文对应发表网址。本文首度发表于 NodeSeek,如有需求直接使用内文文字请向本人申请,否则本人保留追究版权责任的权利。文中提到的第三方产品之版权由各自版权方所有
白话文: 自动机器人退散~~ 

Complete Virtual Mail Server
可以试一下用虚拟用户的
支持
好乱,好麻烦 我还是用 iredmail吧。 1分钟搭建完成