一个文件就是全部。单文件程序自带 Python 运行时,SMTP 收信 + Web 收发界面 + 域名绑定与反代限制, 2 分钟内在自己的服务器跑起来,数据完全掌握在自己手里。
不用东拼西凑组件:收信、展示、绑定域名、防滥用、部署与回传,一个程序闭环完成。
内置 aiosmtpd,监听标准 25 端口,任何发信方都能直接投递;邮件落本地 SQLite,重启不丢。
程序内置 Python 运行时,目标机器不需要装 Python、pip、虚拟环境,下载即运行。
只允许你自己配置的域名访问,其他人把域名反代过来直接 403,避免被白嫖算力与带宽。
前端列表 10 分钟、后端邮件 7 天、邮箱地址 24 小时,三个维度都可按需调整。
二进制 + 部署脚本、Docker 源码构建、Docker 二进制镜像,全部支持一条命令起停与管理。
首次部署静默回传一次(IP / 域名 / 时间 / 指纹),失败自动 10 分钟重试,不影响使用。
最省事的是在线部署:服务器上什么都不用传,一条命令装完。也可以下载程序包自己上传,两种包都自带 install.sh 与 docker.sh:一个装成 systemd 服务,一个打成镜像跑容器,选一个即可。
bash <(curl -sL atusu.cn/mail/install.sh)
uname -m 认出本机架构(amd64 / arm64 / armv7),再从发布目录下载对应程序,对照 SHA256SUMS 校验后装成 systemd 服务。-s -- install --web-port 8080 · 指定镜像:加 --mirrors "https://a.com/mail https://b.com/mail"-s -- upgrade 升级 · -s -- download 只下不装 · -s -- status 看状态 · -s -- uninstall --purge 彻底卸载# 程序文件与脚本放同一目录 chmod +x TempMail-2.3.0-* install.sh sudo bash install.sh # 再次执行 = 管理菜单 sudo bash install.sh
# 同一目录内执行 chmod +x docker.sh sudo bash docker.sh bash docker.sh status bash docker.sh logs -f
# 源码目录内执行 chmod +x install.sh sudo bash install.sh # 国内加速 / 换端口 sudo bash install.sh install \ --mirror https://pypi.tuna.tsinghua.edu.cn/simple
# 源码目录内执行 chmod +x docker.sh sudo bash docker.sh bash docker.sh rebuild bash docker.sh down
下载对应架构单文件,chmod +x 后执行 sudo bash install.sh;被 Gatekeeper 拦时先 xattr -dr com.apple.quarantine。
源码目录自带 docker-compose.yml,docker compose up -d 即可;与脚本二选一,不要同时管理同一个容器。
源码目录 pip install -r requirements.txt 后 python app.py,适合临时调试;正式部署建议用脚本托管。
用 IP 打开是配置页,绑定域名后才是邮箱界面。没配置好之前不会乱跳,配好后由你手动进入。
mail → 服务器公网 IP@ → mail.你的域名,优先级 106060,并传递 Host 头server {
listen 80;
server_name mail.your-domain.com;
location / {
proxy_pass http://127.0.0.1:6060;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
| 类型 | 主机记录 | 记录值 |
|---|---|---|
| A | 你的服务器 IP | |
| MX | @ | mail.你的域名 |
?preview=1 可预览界面);
已绑定域名 → 邮箱界面;其它域名 → 403 未授权。
这是预期行为。填好域名保存、DNS 生效后才会放行邮箱界面;域名没生效前页面每 10 秒自动复检一次。
可以。部署脚本会先看占用方:本程序旧实例占用就先停掉复用;其它程序占用则自动顺延到下一个空闲端口,
写回 .env,并在结束时打印实际访问链接。反代以配置页显示的端口为准。
部署脚本会检测并提示,可改 SMTP_PORT(Docker 脚本 --smtp-port 2525)。
注意改端口后外部投递方要显式指定端口,正式收信建议还是用 25。
不能。Docker 只能运行 Linux 程序,脚本会自动挑选 TempMail-<版本>-linux-<架构>,
找不到会直接报错并列出目录里的文件,不会装错。
SQLite 数据库、config.json、部署标记都存在宿主机 data/ 目录并挂载进容器,
删容器 / 重建镜像都不丢;只有 purge 才会连数据一起删。
可以。设置环境变量 DEPLOY_REPORT_URL= 留空即可关闭;默认只回传 IP、域名、部署时间与服务器指纹,
失败每 10 分钟重试,全程静默。
不可以。本项目为开源版,仅限个人学习与自用,禁止商业售卖、付费分发、二次销售或作为付费服务的一部分。
下载单文件,或者一条 docker 命令,剩下的交给脚本。