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

123nhh(我的状态:期待意外的每一天) 2026-02-28 00:01 1

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


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


先介绍一下项目特色:


webui展示:






首先,你要拥有的



  • 一台开放25端口的服务器

  • 一个你喜欢的域名


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


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




第一步,已知的可忽略

运行一下下面的脚本


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

如果你是新服务器,这时会显示



输入y并回车,然后等待即可

等待一会,然后你会看到下面的界面



一般来说,这样的就是能建的



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



安装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演示



    然后点下面的保存!!!




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




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



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



    出现这个

    或

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



    已经完成




第九步,使用


在邮箱总览页点击新建邮箱即可,或通过api调用,参见

自用记得关闭注册哦



把这个关了即可


FAQ


Q1:邮箱时间太短怎么办?

A1:前往"系统设置"内"邮箱有效期(分钟)"处设置


Q2:我调用API时感觉并发过小怎么办?

A2:前往.env修改"API_RATE_LIMIT","API_RATE_WINDOW"两条,默认每分钟500次请求


Q3:我忘了apikey怎么办?

A3:管理员key请在~/tempmail/data/admin.key查看,也可看第六步教程;用户key找管理员看


Q4:这个域名池是什么意思?

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


Q5:用APIkey创建邮箱时创建不了

A5:检查"系统设置"-"每账户邮箱上限"设置


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


最后想说的


第一次写这种长东西,还是不太会写(((

如有误解之嫌和不解之处欢迎提问

最新回复 (19)
  • Linus Torvalds 02-28 00:01
    1楼

    感谢分享~ 太强了~

  • feng limg 02-28 00:02
    2楼

    长文感谢~~

  • ius 02-28 00:02
    3楼

    用心了佬 ^-^


    不过标题是不是该加上邮箱的字样 ^-^

  • kuuhaku 02-28 00:02
    4楼

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

  • 大帅哥 02-28 00:04
    5楼

    太强了,大佬

  • Clancy Wang 02-28 00:04
    6楼

    太强了,感谢分享

  • Th0m4$ 02-28 00:09
    8楼

    简单粗暴

  • hoshino 02-28 00:34
    9楼

    太强了 ^-^ ^-^ ^-^ ^-^

  • 看看need 02-28 00:43
    10楼

    mark,感谢分享

  • daisheng 02-28 01:37
    12楼

    感谢分享

  • 唯有期 02-28 01:41
    13楼

    感谢分享,佬友太强了~

  • LAMCLOD 02-28 01:47
    14楼

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

  • 123nhh(我的状态:期待意外的每一天) 楼主 02-28 01:48
    15楼

    我测试的zouter us

    netcup都有25

  • 123nhh(我的状态:期待意外的每一天) 楼主 02-28 01:49
    16楼

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

  • LAMCLOD 02-28 01:50
    17楼

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

  • 123nhh(我的状态:期待意外的每一天) 楼主 02-28 01:50
    18楼

    有笨蛋(x

  • LAMCLOD 02-28 01:52
    19楼

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

  • 🛡️Rice R. Rug 💛🍋⭐️💫 02-28 01:55
    20楼

    厉害,感恩

  • 白菜派 02-28 02:16
    21楼

    好详细的佬!

* 帖子来源Linux.do
返回