Inboxen 2026.2.22.0.27.49 介绍与选型指南
Inboxen 自托管一次性收件箱服务认知篇:定位、Django+Salmon 架构、功能边界与 Mailinator/MailDrop/Guerrilla Mail/OneTime Secret 量化选型对比,基于 2026.2.22.0.27.49 官方渠道实查。
Inboxen 2026.2.22.0.27.49 介绍与选型指南
目标:讲清 Inboxen 这一开源自托管临时收件箱(一次性邮箱)服务的定位、架构、功能与边界,并以量化维度对比 Mailinator、MailDrop、Guerrilla Mail、OneTime Secret 等同类方案,帮助读者判断「该不该选、什么时候选」。本文为认知篇,全部数据来自官方渠道在线溯源(标注来源与查询日期),未做本地实测。
一、环境信息
本文为 A1 认知篇,研究对象与取证口径如下,所有结论均于 2026-10-26 通过公开渠道在线溯源取得,未做本地部署实测:
| 项目 | 值 |
|---|---|
| 软件名称 | Inboxen(pip 包名 inboxen,setup.py 描述为 "An email privacy tool") |
| 官方代码仓 | https://codeberg.org/Inboxen/Inboxen(GitHub 旧仓 Inboxen/Inboxen 已于 2024-11-30 归档只读并迁移) |
| 最新部署标签 | deploy-2026.2.22.0.27.49(2026-02-22 打标,Codeberg Tags 实查) |
| 最新可安装包 | inboxen 2026.2.22.0.27.49(wheel + sdist 双形态,官方 Codeberg PyPI 索引实查) |
| 文档站 | https://inboxen.readthedocs.io(Getting Started / The Setting File 两篇) |
| 许可证 | AGPLv3(仓库 LICENSE,setup.py license="AGPLv3") |
| 技术栈基线 | Python ≥ 3.12、Django 5.2(requirements.txt 锁 5.2.6)、PostgreSQL、Celery 5、Salmon Mail 3.3.0 |
| 社区体量 | Codeberg 8 stars / 3 watchers / 1 fork / 38 个开启的 issue(Codeberg API,2026-10-26) |
⚠️ 重要事实:Inboxen.org 公共服务已于 2026 年 4 月关停。官方仓库 README 原文:"As of April 2026 this repository will be receiving fewer updates since Inboxen.org has been shutdown. I'm still accepting pull requests"(Codeberg README.md,2026-10-26 查询)。也就是说,今天接触 Inboxen 的唯一方式是自托管,本系列后续部署、配置、CLI 三篇均以此为前提。
二、软件概述
Inboxen 是一个用 Python/Django 编写的开源一次性收件箱(disposable inbox / 临时邮箱)服务端:部署后,任何发往你域名任意地址的邮件都会被收进系统,注册用户可以随时批量创建收件箱(inbox)、查看其中邮件,用完即弃,不暴露真实邮箱。它最初为公共服务 inboxen.org 而建,2015 年前后由 Jessica Tallon 与 Matt Molyneaux 开发并维护至今(setup.py 作者字段与源码版权头,2026-10-26 实查),当前主维护者为 Matt Molyneaux。
从产品形态上,Inboxen 与常见的「临时邮箱网站」属于同一物种,但有三个显著差异:
- 私有部署且无内置公共域名:装好后收什么域名、谁注册、谁建 inbox,完全由运维者掌控;官方代码不预设任何公共服务策略。
- 面向「多收件箱长期管理」而非「看一封就扔」:Inboxen 的界面围绕「一个用户 + 多个 inbox + 邮件列表 + 全文搜索 + 配额管理」组织,用户可以把自己名下几十个 inbox 当作分类文件夹长期使用,而不是打开页面看一眼就关。项目甚至内置了名为 liberation 的全量数据导出通道(官方设置文档 tasks.liberation 节,2026-10-26 查询),让用户随时把自己的全部邮件打包带走——这在临时邮箱产品里相当罕见。
- AGPLv3 强互惠许可:修改源码对外提供服务的实例必须按 AGPL 条款公开源码,官方在设置文档中专门设计了
source_link配置项,要求改码实例公示源码链接(settings 文档 source_link 节)。
💡 技术拓展:一次性邮箱(Disposable Email)与「一次性密信」(One-time Secret Link)是两类常被混淆的隐私工具。前者提供可收信的邮箱地址,用于绕开注册验证、承接验证码;后者提供只能打开一次的网页链接,用于把密码、密钥等内容安全地转交给对方,本身不接收邮件。本文第七节的对比表中,OneTime Secret 就属于后者。二者常在同一套隐私工具链中搭配使用,但互不替代。
三、核心架构
Inboxen 是一个典型的「Django 单体 + 异步任务 + 独立 SMTP 收信进程」组合,官方 Getting Started 文档与仓库代码(2026-10-26 实查)勾勒出的组件关系如下:
外部发件方
│ SMTP (25)
▼
MTA(如 Postfix) ← 运维者自备,负责公网收信
│ relay / transport
▼ SMTP,默认 localhost:8823
Salmon 收信进程(inboxen.router) ← Inboxen 自带,基于 Salmon Mail 3.3.0
│ 按「本地部份@域名」正则路由
▼
Django 应用(inboxen.settings) ← Web + REST 管理界面,Gunicorn/uWSGI 承载
│ │
▼ ▼
PostgreSQL Celery worker + beat(broker:Redis 或 RabbitMQ)
(Inbox/Email/ (邮件渲染、搜索索引、配额清理等异步任务)
Domain 等模型)
各组件要点(依据官方 Getting Started「Requirements/Setup」节与 inboxen/settings.py,2026-10-26 实查):
| 组件 | 角色 | 关键事实 |
|---|---|---|
| Django 5.2.6 | Web 应用与数据模型 | python_requires >= 3.12;WSGI 入口 inboxen/wsgi.py;管理后台在 /admin/ |
| PostgreSQL | 唯一支持的生产数据库 | 文档要求 pg_config 在 PATH 中;配置走 inboxen.config 的 database 段 |
| Celery 5.5 | 异步任务引擎 | worker 与 beat 两个进程;官方 Makefile 用 celery -A inboxen worker/beat 启动 |
| Salmon Mail 3.3.0 | SMTP 收信路由 | 默认 SALMON_SERVER = {"host": "localhost", "port": 8823, "type": "smtp"}(settings.py 314 行);按收件地址正则路由,保留字地址(postmaster、abuse 等 70 余个)转发给管理员 |
| Postfix 等 MTA | 公网邮件入口 | 官方文档明确「Your mailserver should forward mail to localhost:8823 via SMTP」,MTA 由运维者自备并配置转发 |
| nginx 等 Web 服务器 | 反代与静态资源 | WSGI 应用挂 inboxen/wsgi.py,/static/ 由 static_content 目录直接服务 |
| 缓存 | 可选 | 默认 FileBasedCache,可换 Memcache(需装 pylibmc 并改配置) |
💡 技术拓展:Celery 的消息中间件(broker)不止一种,常见选项对比——
broker 特点 适用场景 RabbitMQ 功能最全,任务可靠投递语义好 生产环境首选,Inboxen 官方默认( amqp://)Redis 部署轻、运维简单,兼具缓存能力 小型实例/单机部署,Inboxen 官方文档认可 SQS 等云服务 免运维,按量计费 云上托管场景,自托管少用 Inboxen 官方默认配置指向 RabbitMQ(
broker_url: "amqp://guest:guest@localhost:5672//"),官方文档同时说明「Setting up a message queue with either RabbitMQ or Redis」均可,换 broker 需补装对应的 Celery 支持包。自托管小实例通常选 Redis,一个进程同时解决 broker 与缓存。
💡 技术拓展:MTA 与收信应用之间的交接协议主要有 SMTP 与 LMTP 两种。SMTP(简单邮件传输协议)是最通用的交接方式,MTA 用普通 SMTP 会话把信推给后端;LMTP(本地邮件传输协议)在会话层增加了逐收件人的确认语义,适合一个连接投递多收件人的场景,Postfix 常以
virtual_transport = lmtp:...对接。Inboxen 默认走 SMTP(8823 端口),代码同时实现了LMTPReceiver(Unix socket 方式,inboxen/router/config/boot.py),可按需切换——本文 B1 部署篇采用默认 SMTP 交接,Postfix 侧用 transport 表转发。
四、功能特性
以下特性清单逐项核对了官方设置文档(The Setting File)与源码(2026-10-26 实查),是 Inboxen 区别于「纯玩具级临时邮箱」的主要能力面:
| 特性 | 说明 | 出处 |
|---|---|---|
| 无限收件箱 | 每用户可随时创建多个 inbox,本地部份长度由 inbox_length(默认 6)控制,域名由管理员预先登记(createdomain 命令) | settings 文档、createdomain.py |
| 保留地址保护 | abuse、postmaster、webmaster 等 70 余个系统保留本地部份不允许被建为 inbox,来信自动转发给管理员 | inboxen/utils/inbox.py |
| HTML/纯文本切换 | 邮件阅读页可一键切换渲染模式,2024.8 版本加入按钮 | CHANGELOG 2024.8.5 |
| 每用户邮件配额 | per_user_email_quota 非 0 时限制单用户邮件持有总量,可自动删除旧信 | settings 文档 |
| 五类限速 | ratelimits 分别约束建 inbox(100 次/1440 分钟)、登录尝试(5 次/60 秒)、按 IP 注册(5 次/30 秒)、单邮件下载(100 次/60 秒)、搜索(5 次/30 秒) | settings 文档 + CHANGELOG 2026.1.22 |
| 全文搜索 | 邮件搜索功能内建,2026.1.22 起加用户级限速防滥用 | CHANGELOG |
| Liberation 全量导出 | 用户可打包导出自己全部邮件数据,存储路径与下载加速后端可配 | settings 文档 tasks.liberation |
| 全局建箱开关 | 2026.2.22 新增 enable_inbox_creation,可整体关闭新建 inbox | CHANGELOG 2026.2.22 |
| 注册开关 | enable_registration 控制是否开放公网注册(默认关闭) | settings 文档 |
| 两步验证登录 | 依赖 django-two-factor-auth 1.18.1(requirements.txt) | requirements.txt |
| 内容安全 | django-csp 4.0、referrer policy 等 CSP 与安全头 | CHANGELOG 2024.9.24 + requirements.txt |
| 国际化 | language_code 回退语言可配,en-gb 默认 | settings 文档 |
💡 说明:与 Mailinator 等商业服务提供的「邮件交互规则引擎」「Webhook」「SDK」相比,Inboxen 没有对外 REST 收信 API,自动化取信需依赖 liberation 导出或数据库层面集成;这是自托管工具与 SaaS 的典型能力差。
五、快速开始(最小可用示例)
以下步骤逐字转自官方 Getting Started 文档(https://inboxen.readthedocs.io/en/latest/getting_started.html,2026-10-26 查询),是官方认定的最小启动路径,仅摘录不验证:
# 官方原文流程(源码安装路径)
git clone https://codeberg.org/Inboxen/Inboxen.git
cd Inboxen
virtualenv-3 env
. env/bin/activate
pip install -r requirements.txt
npm install
touch inboxen.config
# inboxen.config 最小内容(官方示例)
secret_key: some_random_string
# 初始化与启动(官方原文)
./manage.py migrate
make static
mkdir -p run logs
make salmon-start celery-start
完成上述步骤后还需三项外部对接:WSGI 守护进程挂 inboxen/wsgi.py 并把工作目录设为项目根;Web 服务器把 /static/ 指到 static_content 目录;邮件服务器把来信转发到 localhost:8823(SMTP)。官方文档明确表示不提供端到端部署手册("There are too many options and too much difference between various distributions ... for us to docment from start to finish",Getting Started 开篇原文),要求操作者自备 WSGI、邮件服务器、消息队列与缓存的运维经验——本系列《Debian 12 安装 Inboxen 2026.2.22.0.27.49 指南》一篇将这一流程按 Debian 12 完整落地,可作为上述官方步骤的实施对照。
💡 说明:除源码路径外,官方还把 Inboxen 发布为标准 pip 包(2025.12.7 起为 "a proper installable package",CHANGELOG 原文),发布到项目自建的 Codeberg PyPI 索引
https://codeberg.org/api/packages/inboxen/pypi/simple/,安装该包不需要 Node.js/npm(README:静态资源已随包编译)。这是生产部署更推荐的安装形态,同样在 B1 部署篇逐步实测展开。
六、适用场景与限制
6.1 适用场景
- 隐私注册与验证码承接:自建一套「@你的域名」一次性地址池,给员工或社区成员用于外部站点注册,验证码邮件集中落在 Inboxen,用完弃置,不污染真实邮箱。
- 开发/QA 邮件流测试:测试环境把应用发信域名指向 Inboxen,替代 Mailinator 免费公共域,收信数据不出内网,也不会被公共临时邮箱的反滥用策略拦截。配合批量建箱与限速配置,可以低成本支撑自动化测试的收信端。
- 敏感通信基础设施的收信端:在自托管隐私工具栈中承担邮件入口,例如与 GlobaLeaks 举报平台(《GlobaLeaks 5.0.99 介绍与选型指南》)这类匿名通报系统同域部署时,用独立域名 + Inboxen 承接通知类邮件,把「能收信」与「能定位到人」解耦。
- 邮件列表/存档类系统的隔离对照环境:与 Mailman/HyperKitty(《HyperKitty 1.3.12 介绍与选型指南》)等正式邮件基础设施并排搭建测试域,验证 MTA 路由、反垃圾策略变更而无需触碰生产列表。
6.2 限制与风险
- 公共服务已死,仅剩自托管:inboxen.org 于 2026 年 4 月关停,官方仓库更新频率明显下降(README 原文承认 "receiving fewer updates"),选型等于承诺自己接管维护。
- 部署门槛显著高于同类:官方不提供端到端手册,需要自备 MTA、WSGI、消息队列四类运维经验;对比「解压即用」的一次性邮箱脚本,Inboxen 是一套完整分布式应用(Web + DB + 队列 + 收信进程四进程协作)。
- 运行时基线较新:Python ≥ 3.12、Django 5.2,老发行版(如 Debian 12 自带 Python 3.11)需自行升级 Python,Debian 13(trixie)自带 3.13 可直接满足。
- 无官方容器镜像:Docker Hub 上的
crazymax/inboxen为社区第三方镜像且最后推送停在 2019-07-15(deploy-20190609标签,Docker Hub API 实查),远落后于当前代码;容器化部署需自建镜像(B2 部署篇按此如实处理)。 - 社区体量小:Codeberg 8 stars / 38 个开启 issue / 1 fork(2026-10-26),遇坑基本要靠读源码;安全响应通道是维护者个人邮箱(README Security 节),无 CVE 数据库条目可查。
- AGPLv3 合规义务:对外提供服务的改码实例必须公示源码,商用前需过法务。
6.3 滥用防护考量
自托管一次性邮箱服务天然会被用于绕过注册风控,运维者需要主动设防。Inboxen 内建的抓手包括:enable_registration 关闭公网注册、ratelimits.register 按 IP 限注册、ratelimits.inbox 按用户限建箱量、enable_inbox_creation 全局熔断、per_user_email_quota 限持有量。此外应在 MTA 侧配合:仅接收自有域来信、对接 RBL/DNSBL、限制 25 端口来源。若实例定位为团队内部使用,建议直接关闭注册、用 createsuperuser 建号后内部分发。
七、同类选型对比
对比对象按任务口径选取:Mailinator(商业 SaaS 标杆)、MailDrop(免费公共临时邮箱)、Guerrilla Mail(老牌公共临时邮箱)、OneTime Secret(一次性密信,非邮箱,用于厘清概念边界),Inboxen 为本文主角。数据均于 2026-10-26 从各方官网/官方仓库在线实查:
| 维度 | Inboxen 2026.2.22 | Mailinator | MailDrop | Guerrilla Mail | OneTime Secret v0.26.14 |
|---|---|---|---|---|---|
| 本质 | 自托管临时收件箱服务端 | 商业 SaaS 临时邮箱 + 测试平台 | 免费公共临时邮箱 | 免费公共临时邮箱 | 一次性密信链接(不收邮件) |
| 开源/许可 | AGPLv3,源码可审计 | 闭源 SaaS | 前端服务运行中;GitHub 项目 maildrop/maildrop 现不可公开访问(2026-10-26 实查) | 站点服务闭源;其收信引擎 Go Guerrilla 开源(github.com/flashmob/go-guerrilla) | MIT,可自托管 |
| 公共服务 | inboxen.org 已于 2026-04 关停 | mailinator.com 运行中(免费公共域 @mailinator.com + 付费私有域) | maildrop.cc 运行中 | guerrillamail.com 运行中(11 个域名) | onetimesecret.com 运行中 |
| 自托管 | ✅(本文主角) | ❌ | ❌(无官方镜像/发行) | ❌(仅引擎可自用) | ✅(官方 Docker 镜像 + Compose) |
| 收费 | 免费自担运维 | 免费层(Verified Pro $0);Business $79/月起,Enterprise $699 定制 | 免费且无付费层 | 免费(广告) | 云服务收费;自托管免费 |
| 地址模型 | 用户名下任意多 inbox,长期管理 + 配额 | 公共域任意地址即开即读;私有域随套餐 | 单地址即用,无账号 | 随机地址 + Scramble Address 混淆 | 无地址,一次性链接 |
| 邮件留存 | 用户/管理员策略控制(配额 + 自动删除可配) | 公共域邮件自动过期;私有域按套餐 | 服务器自动清理 | 全部邮件 1 小时后删除(官方 About 原文) | 不适用(链接阅后即焚) |
| 防滥用设施 | 注册开关/按 IP 限注册/限建箱/全局熔断/邮件配额/五类限速 | 商业风控(私有域隔离 + 反滥用) | Heluna 反垃圾过滤 | 无垃圾箱设计 + Scramble | 链接一次性语义 |
| API/自动化 | 无对外收信 API;liberation 导出 + 数据库集成 | 完整 REST API + Webhook + SDK(多语言) | GraphQL API(api.maildrop.cc) | HTTP API | REST API |
| 技术栈 | Python 3.12 + Django 5.2 + PostgreSQL + Celery + Salmon | 商业不公开 | Scala/Akka(历史) | PHP/JS 前端 + Go 引擎 + MySQL | Ruby/Rails(近期版本) |
| 社区活跃度 | Codeberg 8 stars / 38 open issues;2023-09 ~ 2026-02 持续有部署标签 | 商业公司运营,博客更新至 2026-10 | 服务在线,开源仓维护停滞 | 服务长期运行,引擎仓持续维护 | GitHub 活跃,release 节奏正常 |
| 版本节奏 | 按部署日期打标(deploy-YYYY.M.D),2026 年 2 月最新 | SaaS 持续交付 | 无公开版本线 | 无公开版本线 | 语义化版本(v0.26.14,2026 实查) |
关键差异与选型判断:
- 要「私有、可控、数据不出内网」 → 只有 Inboxen 和 OneTime Secret 满足,二者再按「收邮件」还是「递密信」分工;如需正式收信基础设施则看 Mailman/HyperKitty 一类(《HyperKitty 1.3.12 介绍与选型指南》)。
- 要「零运维、马上用」 → 公共 SaaS(Mailinator 免费域/MailDrop/Guerrilla Mail)直接可用,代价是地址公开可读(Mailinator 公共域谁都能看)、留存策略不可控。
- 要「API 驱动的自动化测试」 → Mailinator 的 REST API/Webhook 体系最完整;Inboxen 无对外收信 API,自动化需绕行导出通道。
- 要「把敏感文本安全递给一个人」 → 这是 OneTime Secret 的领域,任何临时邮箱都不应承担该职责。
- 综合结论:Inboxen 适合「有 MTA/Python 运维能力、重视数据主权、愿意自行维护」的团队与个人;若上述任一前提不成立,退回 SaaS 或改用 OneTime Secret 类工具更务实。
八、参考链接
- 官方代码仓(Codeberg):
https://codeberg.org/Inboxen/Inboxen(2026-10-26 查询) - 官方文档 Getting Started:
https://inboxen.readthedocs.io/en/latest/getting_started.html(2026-10-26 查询) - 官方文档 The Setting File:
https://inboxen.readthedocs.io/en/latest/settings.html(2026-10-26 查询) - 官方 pip 索引:
https://codeberg.org/api/packages/inboxen/pypi/simple/(2026-10-26 查询) - GitHub 旧仓(已归档):
https://github.com/Inboxen/Inboxen(2026-10-26 查询) - Mailinator 官网:
https://www.mailinator.com/(2026-10-26 查询) - MailDrop 官网:
https://maildrop.cc/(2026-10-26 查询) - Guerrilla Mail About/FAQ:
https://www.guerrillamail.com/about(2026-10-26 查询) - OneTime Secret 官方仓库:
https://github.com/onetimesecret/onetimesecret(2026-10-26 查询) - 站内关联:《GlobaLeaks 5.0.99 介绍与选型指南》、《HyperKitty 1.3.12 介绍与选型指南》