9.2 KiB
Auth Inbox 验证邮局 📬
Auth Inbox 是一个自建的开源多邮箱验证码的接码平台,基于 Cloudflare 的免费服务。它可以自动处理收到的邮件,提取验证码或链接,并将其存储在数据库中。管理员可以通过一个用户友好的网页界面轻松查看提取的信息。AuthInbox 还支持通过 Bark 进行实时通知,使其成为一个全面且省心的邮件认证管理解决方案。
不想在主邮箱中收到广告和垃圾邮件?想要多个备用邮箱用于注册服务和网站?试试这个吧!
目录 📑
功能 ✨
- 邮件处理:自动捕获和存储收到的邮件。
- 验证码提取:利用 AI 从邮件中提取验证码、链接和组织名称。
- 安全前端:提供受 Basic Access Authentication 保护的网页界面,用于查看提取的验证码。
- 实时通知:当提取到新的验证码时,可选通过 Bark 发送通知。
- 数据库集成:将原始和处理过的邮件数据存储在 D1Database 中。
使用的技术 🛠️
- Cloudflare Workers: 无服务器平台,用于处理邮件处理和Web请求。
- Cloudflare D1: Cloudflare的无服务器SQL数据库,用于存储邮件数据。
- TypeScript: 强类型编程语言,确保代码的稳健性和可维护性。
- AI 提示词优化: 定制的提示确保从多种邮件格式中精确提取标题、代码和主题。
- Google AI Studio API: 利用优化的AI提示从邮件中提取相关信息,以提升数据的准确性和可靠性。
- Bark API: 可选集成,用于发送实时通知。
- HTML/CSS: 前端界面,具有响应式和现代化设计。
- Google Fonts: 通过一致的排版增强Web界面的视觉吸引力。
AI 提示词优化 🧠
为了确保从收到的电子邮件中准确提取信息,我们使用Google AI Studio API实施了AI提示优化。通过设计精确且具有上下文意识的提示,AI可以可靠地识别和提取关键要素,如:
- 组织名称(标题): 识别发件人的组织或公司。
- 验证码/链接: 提取账户验证所需的代码、链接或密码。
- 电子邮件主题: 总结电子邮件的主要目的,例如“账户验证”或“密码重置”。
提示词如下:
Email content: [Insert raw email content here].
Please read the email and extract the following information:
1. Code/Link/Password from the email (if available).
2. Organization name (title) from which the email is sent.
3. A brief summary of the email's topic (e.g., 'account verification').
Format the output as JSON with this structure:
{
"title": "The organization or company that sent the verification code (e.g., 'Netflix')",
"code": "The extracted verification code, link, or password (e.g., '123456' or 'https://example.com/verify?code=123456')",
"topic": "A brief summary of the email's topic (e.g., 'account verification')",
"codeExist": 1
}
If both a code and a link are present, include both in the 'code' field like this:
"code": "code, link"
If there is no code, clickable link, or this is an advertisement email, return:
{
"codeExist": 0
}
安装 ⚙️
-
使用 Github Pages 进行安装
-
创建 D1 数据库
-
进入 Cloudflare 仪表盘 ->
Workers & Pages->D1 SQL Database->Create -
输入名称
inbox-d1并点击Create -
创建
inbox-d1后,点击进入并找到Console -
在控制台中执行 db/schema.sql 中的 SQL 命令,直接复制、粘贴并执行它。
-
复制
database_id和database_name,用于下一步配置TOML文件时使用
-
-
部署 Cloudflare Worker
-
点击上方按钮 fork 此仓库,或直接 fork 此仓库。重要:请务必把你的仓库设置为私密!!
-
打开你 fork 的仓库,找到
Actions页面,找到Deploy Auth Inbox to Cloudflare Workers,并点击enable workflow激活 workflow。 -
然后,在仓库页面中,导航到
Settings->Secrets and variables->Actions->Repository secrets,并添加以下 secrets:CLOUDFLARE_ACCOUNT_ID: Cloudflare 账户 ID。CLOUDFLARE_API_TOKEN: Cloudflare API Token。TOML: 配置文件,参考 wrangler.toml。
-
返回你仓库的
Actions页面,找到Deploy Auth Inbox to Cloudflare Workers,并按Run workflow来部署 worker。 -
部署成功后,你可以在
Deploy Auth Inbox to Cloudflare Workers的 workflow 日志中找到你的 worker URL。 -
完成!✅ 你现在可以访问你的新部署的 Auth Inbox URL,查看电子邮件结果。
-
-
-
使用 Wrangler 命令行部署到 Cloudflare Workers
-
先决条件
- 安装 Wrangler
npm install wrangler -g-
创建一个 Google AI Studio API
-
在你的 Cloudflare 账户上绑定一个域名
-
(可选)下载Bark App,在App中获得一个Bark Token
-
初始化
git clone https://github.com/TooonyChen/AuthInbox.git cd AuthInbox npm install -
创建 d1 数据库
当你第一次执行 Wrangler 登录命令时,系统会提示你登录。按提示操作即可。
npx wrangler d1 execute inbox-d1 --local --file=./schema.sql # 创建名为 'inbox-d1' 的 d1 数据库你将会看到如下结果:
✅ Successfully created DB 'inbox-d1' [[d1_databases]] binding = "DB" # 在你的 Worker 中通过 env.DB 访问 database_name = "inbox-d1" database_id = "<你的数据库的唯一ID>"请从终端复制结果,你将在下一步中使用它们。
-
配置环境变量
使用项目根目录下的
wrangler.toml文件,并添加所需的环境变量:name = "auth-inbox" type = "typescript" [vars] UseBark = 'true' # 设置为 'true' 启用 Bark,设置为 'false' 禁用 barkUrl = "https://api.day.app" barkTokens = "[token1, token2]" # 填写你 iOS 设备上的 Bark tokens,可从 https://bark.day.app/ 下载应用获取,可以填写多个。如果你只想用一个,那么填写 '[token1]' FrontEndAdminID = "admin" # 你的登录 ID FrontEndAdminPassword = "password" # 你的登录密码 GoogleAPIKey = "xxxxxxxxxxx" # 你的 Google API key,如果没有可以前往 https://aistudio.google.com/ 生成一个 [[d1_databases]] # 从步骤 2 的终端结果中复制这些行。 binding = "DB" database_name = "inbox-d1" # 从步骤 2 中复制 database_id = "<你的数据库的唯一ID>" # 从步骤 2 中复制- 部署你的 worker 🌐
部署你的 Worker 以使项目在互联网上可访问。运行以下命令:
npx wrangler deploy你将看到如下输出:
output: https://auth-inbox.<你的子域名>.workers.dev你现在可以访问该 URL 来查看你部署的 Auth Inbox 的邮件结果。
-
设置邮件转发 ✉️
前往 Cloudflare Dashboard ->
Websites-><你的域名>->Email->Email-Routing->Routing Rules -
完成✅
一切设置完毕!现在可以试试了!
-
许可证 📜
本项目基于 MIT License 许可证。
截图 📸
鸣谢 🙏
- 感谢 Cloudflare Workers 提供强大的无服务器平台。
- 感谢 Google Gemini AI 提供智能的邮件内容提取功能。
- 感谢 Bark 提供实时通知能力。
- 感谢 开源社区 为像 Auth Inbox 这样的项目提供灵感和支持。
- 感谢 ChatGPT 协助我写代码
TODO 📝
-
多用户支持:增加管理多用户的功能,以提高灵活性并扩展使用范围。
-
增强前端设计:改进网页界面的UI/UX设计,使其更加现代化和用户友好。
-
API: 添加API接口。