【自建临时邮箱】一个更适合注册机的VPS自建邮箱教程(真就手把手喂了x)

前情提要,该项目为一个人鞭策了三天claude的项目,经过了近几日各种注册机的拷打,已经证实了该项目的可部署性以及高并发性,不会写还不会AI嘛(x

项目地址: 123nhh/tempmail: 支持多域名、自动 MX 记录校验及 Web 管理面板的自托管临时邮箱服务。

先介绍一下项目特色:

webui展示:



首先,你要拥有的

  • 一台开放25端口的服务器
  • 一个你喜欢的域名

ok,教程开始,我将使用一台全新的服务器来进行演示,这里ip以66.92.*.*为例

第一步,确定你的服务器是否能收件

第一步,已知的可忽略

运行一下下面的脚本

bash <(curl -sL IP.Check.Place)

如果你是新服务器,这时会显示
image
输入y并回车,然后等待即可
等待一会,然后你会看到下面的界面


一般来说,这样的就是能建的
image
这样的就是不能的,然后,让我们进入下一步吧~

安装docker

第二步,安装docker,已装可跳过
bash <(curl -sL 'https://get.docker.com')

等待一会输入

docker --version

提示Docker version ……的就代表已经安装完成了

如果安装时提示以下内容请更换linux到新版本

第三步,克隆仓库

在终端输入以下命令

git clone https://github.com/123nhh/tempmail.git
cd tempmail
cp .env.example .env

第四步,更改".env"和"docker-compose.yml"文件

这里直说需要更改的内容,怎么更改自行搜索,实在不行可以下载到本地改完后再传上去

如果只是自用的话理论可以不用改,后面去后台关闭注册即可

打开.env文件,你会看到关于各个端口需要更改的地方(不懂的不需要改,懂了再改)
这里需要重点更改的如下

.env

POSTGRES_PASSWORD=<改为一个强密码,后续以pgpw替代该密码>
REDIS_PASSWORD=<改为一个强密码,后续以rdpw替代该密码>

API_DB_DSN=postgres://tempmail:<pgwd>@pgbouncer:6432/tempmail?sslmode=disable

API_REDIS_PASSWORD=<rdpw>

docker-compose.yml(理论来说不追求特别安全可以不改,但是如果搭配nginx反代等建议更改,这里不详细说明,文件内已详细说明)

总结

第五步,运行

在 ~/tempmail 目录下执行

docker compose up -d

编译时间略长,静待镜像编译即可(不打算上传镜像,请自行构建)
后续更改配置文件了重启docker即可(在目录下执行"docker compose down && docker compose up -d")
显示这个即为构建完成

第六步 获取管理员apikey后登录

在~/root/tempmail下执行

cat data/admin.key

然后会获取到以下内容

# TempMail Admin API Key
# Auto-generated on startup — keep this secret!

ADMIN_API_KEY=tm_admin_***********

这个"tm_admin_***********"即为你的apikey

第七步,进入后台

访问 http://ip 即可
在这里填写你刚才获得的key即可


第八步,添加域名,这里默认你的域名已经添加进cf了,这里以aba-aba.de举例

(小声:aba-aba.de是我打算高考完写点教程的地方,但是现在就几篇ai写的文章占位和调试ui什么的,欢迎来看看我的站的ui喵www)

  1. 打开cf,添加A解析

  2. 进入系统设置一栏填写你的服务器ip和域名,记得点保存

  3. 打开域名列表栏,在这里就能看到填写提示了(MX解析为必须,TXT解析可选)

  4. 打开cf的域名管理,这里我以mail.aba-aba.de演示


    然后点下面的保存!!! image

  5. 返回临时邮箱页,点击image

  6. 填写你加的域名,就是示例的mail.aba-aba.de


    若域名MX解析未到位则会进入列队

    出现这个image

    即为添加完成,返回域名列表进行查看

    已经完成

第九步,使用

在邮箱总览页点击新建邮箱即可,或通过api调用,参见image
自用记得关闭注册哦
image
把这个关了即可

FAQ

Q1:邮箱时间太短怎么办?
A1:前往"系统设置"内"邮箱有效期(分钟)"处设置

Q2:我调用API时感觉并发过小怎么办?
A2:前往.env修改"API_RATE_LIMIT","API_RATE_WINDOW"两条,默认每分钟500次请求
image

Q3:我忘了apikey怎么办?
A3:管理员key请在~/tempmail/data/admin.key查看,也可看第六步教程;用户key找管理员看

Q4:这个域名池是什么意思?
A4:这个域名池参考了"gptmail"的思路,这里更适合个人/团队使用,普通成员也可添加自己的域名进域名池供集体调用

Q5:用APIkey创建邮箱时创建不了
A5:检查"系统设置"-"每账户邮箱上限"设置

webui其实写的也挺详细了,配置不会了丢Agent里问问就行

最后想说的

第一次写这种长东西,还是不太会写(((
如有误解之嫌和不解之处欢迎提问

357 个赞

感谢分享~ 太强了~

3 个赞

长文感谢~~

用心了佬 :partying_face:

不过标题是不是该加上邮箱的字样 :face_with_monocle:

是不是应该放在3级啊,不过只是临时邮箱的话好像也没事?

1 个赞

太强了,大佬

太强了,感谢分享

简单粗暴

2 个赞

太强了 :laughing: :grinning_face_with_smiling_eyes: :index_pointing_at_the_viewer: :+1:

1 个赞

mark,感谢分享

留下脚印.感谢分享

感谢分享

1 个赞

感谢分享,佬友太强了~

太强了,可惜25端口服务器不好找啊

我测试的zouter us
netcup都有25

1 个赞

可以去收个netcup的1o/2o机挂(?

1 个赞

水回复的我此时羞愧的低下了头(手动表情包)

2 个赞

有笨蛋(x

为害羞的佬留下我的足迹(表情包x1)

1 个赞

厉害,感恩

1 个赞