Skip to content

Latest commit

 

History

History
243 lines (163 loc) · 10.2 KB

README_CN.md

File metadata and controls

243 lines (163 loc) · 10.2 KB

Auth Inbox 验证邮局 📬

English | 简体中文

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
}


安装 ⚙️

  1. 先决条件

  2. 使用 Github Pages 进行安装

    1. 创建 D1 数据库

      1. 进入 Cloudflare 仪表盘 -> Workers & Pages -> D1 SQL Database -> Create

      2. 输入名称 inbox-d1 并点击 Create

      3. 创建 inbox-d1 后,点击进入并找到 Console

      4. 在控制台中执行 db/schema.sql 中的 SQL 命令,直接复制、粘贴并执行它。

      5. 复制 database_iddatabase_name,用于下一步配置 TOML 文件时使用

    2. 部署 Cloudflare Worker

      Deploy to Cloudflare Workers

      1. 点击上方按钮 fork 此仓库,或直接 fork 此仓库。

      2. 打开你 fork 的仓库,找到 Actions 页面,找到 Deploy Auth Inbox to Cloudflare Workers,并点击 enable workflow 激活 workflow。

      3. 然后,在仓库页面中,导航到 Settings -> Secrets and variables -> Actions -> Repository secrets,并添加以下 secrets:

      4. 返回你仓库的 Actions 页面,找到 Deploy Auth Inbox to Cloudflare Workers,并按 Run workflow 来部署 worker。如果没找到 Run workflow 按钮,请你随便修改一下repo中的readme.md文件,让Github Actions自动运行。

      5. 部署成功后,你可以在 Deploy Auth Inbox to Cloudflare Workers 的 workflow 日志中找到你的 worker URL。

      6. 在 workflow 日志页面的右上角找到 delete all logs 来删除日志,删除它来避免数据外泄。

      7. 完成!✅ 请前往第三步:设置邮件转发。

  3. 使用 Wrangler 命令行部署到 Cloudflare Workers

    1. 初始化

      npm install wrangler -g # 安装 wrangler
      git clone https://github.com/TooonyChen/AuthInbox.git # 克隆仓库
      cd AuthInbox # 切换目录
      npm install # 安装依赖
    2. 创建 d1 数据库

      当你第一次执行 Wrangler 登录命令时,系统会提示你登录。按提示操作即可。

      npx wrangler d1 create inbox-d1 # 创建名为 'inbox-d1' 的 d1 数据库
      npx wrangler d1 execute inbox-d1 --remote --file=./db/schema.sql # 执行 schema.sql 文件

      你将会看到如下结果:

      ✅ Successfully created DB 'inbox-d1'
      
      [[d1_databases]]
      binding = "DB" # 在你的 Worker 中通过 env.DB 访问
      database_name = "inbox-d1"
      database_id = "<你的数据库的唯一ID>"

      请从终端复制结果,你将在下一步中使用它们。

    3. 配置环境变量

    使用项目根目录下的 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 中复制
    1. 部署你的 worker 🌐

    部署你的 Worker 以使项目在互联网上可访问。运行以下命令:

    npx wrangler deploy

    你将看到如下输出:

    output: https://auth-inbox.<你的子域名>.workers.dev
    

    你现在可以访问该 URL 来查看你部署的 Auth Inbox 的邮件面板。

  4. 设置邮件转发 ✉️

    前往 Cloudflare Dashboard -> Websites -> <你的域名> -> Email -> Email-Routing -> Routing Rules

    如果你想使用“接收所有地址”: image

    如果你想使用“自定义地址”: image

  5. 完成!

    现在你可以访问你的新部署的 Auth Inbox URL,查看电子邮件结果。


许可证 📜

本项目基于 MIT License 许可证。


截图 📸

image


鸣谢 🙏

  • 感谢 Cloudflare Workers 提供强大的无服务器平台。
  • 感谢 Google Gemini AI 提供智能的邮件内容提取功能。
  • 感谢 Bark 提供实时通知能力。
  • 感谢 开源社区 为像 Auth Inbox 这样的项目提供灵感和支持。
  • 感谢 ChatGPT 协助我写代码

TODO 📝

  • Github Pages 部署:通过 Github Actions 自动部署到 Cloudflare Workers。
  • 正则表达式:使用正则表达式替代 Google Gemini AI 以保护隐私,并将使用 AI 作为一个可选功能。
  • 多用户支持:增加管理多用户的功能,以提高灵活性并扩展使用范围。
  • 增强前端设计:改进网页界面的UI/UX设计,使其更加现代化和用户友好。
  • API: 添加API接口。
  • 发送邮件:添加发送邮件功能。
  • 更多通知方式:支持更多通知方式,如邮件、Slack等。