前言
经过调研,我们发现有三种方案来实现批量注册电子邮箱:
- 电子邮箱别名服务(或转发服务)
- 企业邮箱
- 自建邮件服务器
在上一篇文章中,我们讲了“企业邮箱”,企业邮箱注册和创建非常简单,开箱即用,但因为大多数企业邮箱都是收费的,而且价格不菲,免费版的企业邮箱通常限制50个用户(50个邮箱地址),而且不提供开发者API,所以为了尽可能的降低成本,以及创建账号数量不受限,我们的最优解还是购买一台云服务器(ECS)自行搭建邮件服务器。
邮件系统
我们收集了常见的开源电子邮件系统信息,对比如下:
| 系统名称 | 硬件要求 | Web UI | 开发者API | 开发语言 | GitHub Star |
|---|---|---|---|---|---|
| Mailcow | 2核4GB | 支持✅ | 支持✅ | PHP / JacaScript | 12.5k+ |
| Stalwart | 1核1GB | 支持✅ | 支持✅ | Rust | 12.2k+ |
| Postal | 2核4GB | 支持✅ | 支持✅ | Ruby | 16.4k+ |
| Mail-in-a-Box | 1核1GB | 支持✅ | 支持✅ | Python / Shell | 15.3k+ |
| Mailu | 1核2GB | 支持✅ | 支持✅ | Python | 7.1k+ |
| mox | 1核512MB | 支持✅ | 支持✅ | Go | 5.6k+ |
| docker-mailserver | 1核2GB | 不支持❌ | 不支持❌ | Shell / C | 18.1k+ |
| iRedMail | 1核2GB | 收费支持⚠️ | 收费支持⚠️ | Shell / Python | 1.8k+ |
| Maddy | 1核512MB | 不支持❌ | 不支持❌ | Go | 5.9k+ |
| WildDuck | 1核2GB | 不支持❌ | 支持✅ | Node.js | 2.1k+ |
这些邮件系统都是开源免费的(iRedMail 的 Pro 版本除外)
经过测试,我们觉得 Mailcow 功能强大,安装简单,且集成了 Web 管理员后台和收发邮件的 Web 客户端,提供中文界面,支持开发者 API,最好用,于是对 Mailcow 的安装部署做详细介绍,其它邮件系统的安装,可以参考各自的官方文档。
Mailcow
mailcow 可以说是最受欢迎的电子邮件系统了,根据官方文档,它的安装教程如下:
docs.mailcow.email/getstarted/…
首先购买云主机(阿里云/腾讯云等等),如果你主要用于接收国外邮件(如 Steam),尽量选择境外主机(香港/日本/新加坡),如果你主要用于接收国内邮件,则尽量选择境内主机。
mailcow 对内存要求较高,最低4GB,推荐6GB以上,为节约成本,我们可以选择轻量云服务器。因为搭建好的邮件系统其实也就我们一个人使用,对CPU的要求并不高。
购买好云服务器后,在后台给我们的云服务器开放如下TCP端口:
25 / 465 / 587 / 143 / 993 / 110 / 995 / 4190 / 80 / 443
然后在购买域名的地方,添加以下四条DNS记录:
| Name | Type | Value |
|---|---|---|
| A | 服务器IP | |
| autodiscover | CNAME | 服务器域名 |
| autoconfig | CNAME | 服务器域名 |
| @ | MX | 服务器域名 |
服务器 IP 就是你的云服务器的外网 IP
服务器域名,假如你的域名是 pypig.com 那么服务器域名我们一般取 mail.pypig.com
由于我的域名 pypig.com 是在 cloudflare 购买的,所以我在 cloudflare 后台添加如下四条DNS记录:
其中第四条MX类型的记录,Priority 设置为10
如果你的域名是在阿里云买的,就去阿里云后台添加DNS记录
回到我们购买的云服务器上,我们选择的是 Ubuntu 系统,如果你也是 Ubuntu 系统,可以按照如下的方法安装,如果不是,则参考上面的 mailcow 官方文档。
我们进入到服务器的命令行界面,按顺序一条一条的输入以下命令:
sudo apt update
sudo apt install -y git openssl curl gawk coreutils grep jq
curl -sSL get.docker.com/ | CHANNEL=stable sh
sudo systemctl enable --now docker
sudo apt update
sudo apt install docker-compose-plugin
umask 0022
cd /opt
sudo git clone github.com/mailcow/mai…
cd mailcow-dockerized
sudo ./generate_config.sh
sudo docker compose pull
sudo docker compose up -d
如果嫌麻烦,可以使用我们编写好的一键安装脚本,只需执行如下两行命令:
wget raw.githubusercontent.com/encoderlee/…
sudo bash mailcow.sh
安装过程中,命令行会提示:
Mail server hostname (FQDN) - this is not your mail domain, but your mail servers hostname:
这时候输入邮件服务器域名,我的域名是 pypig.com,所以我输入 mail.pypig.com
第二步会提示选择时区:
Timezone [Asia/Shanghai]:
如果提示的就是 Shanghai(上海),那直接敲回车即可
第三步会提示安装哪个版本:
Which branch of mailcow do you want to use? Available Branches:
- master branch (stable updates) | default, recommended [1]
- nightly branch (unstable updates, testing) | not-production ready [2]
- legacy branch (supported until February 2026) | deprecated, security updates only [3] Choose the Branch with it's number [1/2/3]
我们输入1然后按回车,选择稳定版本
安装完成后,如果没有出错,稍等片刻,我们就可以在浏览器中打开Web后台
注意 mail.pypig.com 是我的域名,你的后台要替换成你的域名
然后使用默认管理员用户名 admin 和默认密码 moohoo 登录
进入后台后,尽快点右上角的【系统】【配置】修改管理员 admin 的密码
然后点右上角的【E-Mail】【配置】【域名】【添加域名】,添加自己的域名,我的是 pypig.com,其中【
最大允许的邮箱数】可以根据你的需求设置多一点,比如 500 , 然后点【添加域名并重启】
然后切换到【邮箱】选项卡,点【添加邮箱】,我们添加一个名为 cfan 的用户
于是我们就创建了 cfan@pypig.com 这样一个邮箱地址,以此类推,我们可以创建无数个电子邮箱地址,也可以通过开发者API,用脚本批量创建无数个邮箱地址
那么怎么登录这个邮箱,查看里面的邮件内容呢?
我们打开邮箱登录页面:
如果仍然是 admin 后台的话,需要先退出,或者使用 Chrome 的多用户功能或无痕窗口功能,另开一个 Chrome 窗口来登录
输入我们刚才创建的用户邮箱地址 cfan@pypig.com 和创建用户时设置的密码,点登录
就可以在这里收发邮件了,可以看到我们成功收到了 Steam 的注册邮件,说明此方法可以用来注册 Steam 账号
至于发送邮件的话,需要你的云服务器解锁25端口,阿里云和腾讯云默认是关闭的,需要填表申请解锁,或者选择其它没锁25端口的云服务商,因为我们的需求只接收邮件,不发送邮件,所以这里就不详细介绍了