Files
AuthInbox/README.md
T
2024-10-08 04:51:26 +13:00

5.9 KiB

Auth Inbox 📬

English | 简体中文

Auth Inbox is an open-source project that securely receive and views authentication emails using Cloudflare's free serverless services. It automatically processes incoming emails, extracts verification codes or links, and stores them in a database. A user-friendly web interface is provided for administrators to easily review the extracted information. AuthInbox also supports real-time notifications via Bark, making it a comprehensive and hassle-free solution for email authentication management.

Don't wanna receive ads and spams on your main email? Want a bunch of alternative email for register services and websites? Try this secure, serverless, light service!

Framework


Table of Contents 📑


Features ✨

  • Email Processing: Automatically captures and stores incoming emails.
  • Code Extraction: Utilizes AI to extract verification codes, links, and organization names from emails.
  • Secure Front-End: Provides a web interface protected by Basic Access Authentication for viewing extracted codes.
  • Real-Time Notifications: Optionally sends notifications via Bark when new codes are extracted.
  • Database Integration: Stores raw and processed email data in a D1Database.

Technologies Used 🛠️

  • Cloudflare Workers: Serverless platform for handling email processing and web requests.
  • Cloudflare D1: Cloudflare's serverless SQL database for storing email data.
  • TypeScript: Strongly typed programming language for robust and maintainable code.
  • Google AI Studio API: Utilized for extracting relevant information from emails.
  • Bark API: Optional integration for sending real-time notifications.
  • HTML/CSS: Front-end interface with responsive and modern design.
  • Google Fonts: Enhances the visual appeal of the web interface with consistent typography.

Installation ⚙️

  1. Prerequisites

    Install Wrangler

    npm install wrangler -g
    

    Create a Google AI Studio API and have a domain binded on your Cloudflare account

  2. Initialization

    git clone https://github.com/TooonyChen/AuthInbox.git
    cd AuthInbox
    npm install
    
  3. create d1 database

    When you execute the Wrangler login command for the first time, you will be prompted to log in. Just follow the prompts.

    npx wrangler d1 execute inbox-d1 --local --file=./schema.sql # creating a d1 database called 'inbox-d1'
    

    you will get the result like this:

    ✅ Successfully created DB 'inbox-d1'
    
    [[d1_databases]]
    binding = "DB" # available in your Worker on env.DB
    database_name = "inbox-d1"
    database_id = "<unique-ID-for-your-database>"
    

    please copy the result from your terminal, you will use them in the next step

  4. Configure Environment Variables

Use wrangler.toml file in the project root with the necessary environment variables:

name = "auth-inbox"
type = "typescript"

[vars]
UseBark = "true" # set 'true' to use or 'false' to not use
barkUrl = "https://api.day.app"
barkTokens = "["token1", "token2"]" # set to your bark tokens on your iOS device, download it from https://bark.day.app/, you can use multiple tokens, if you only use one, then set it to '['token1']'
FrontEndAdminID = "admin" # your login
FrontEndAdminPassword = "password" # your password
GoogleAPIKey = "xxxxxxxxxxx" # your google api, go to https://aistudio.google.com/ to generate one if u dont have

[[d1_databases]] # Copy the lines obtained from step 2 from your terminal.
binding = "DB"
database_name = "inbox-d1" # Copy from step 2
database_id = "<unique-ID-for-your-database>" # Copy from step 2
  1. Deploy your own worker 🌐 Deploy your Worker to make your project accessible on the Internet. Run:
    npx wrangler deploy
    
    You will get output like this:
    Outputs: https://auth-inbox.<YOUR_SUBDOMAIN>.workers.dev
    
    You can now visit the URL for your newly depolyed Auth Inbox for checking the email results.
  2. Set Email Forwarding ✉️ Go to Cloudflare Dashboard -> Websites -> <your-domain> -> Email -> Email-Routing -> Routing Rules if you want to use catch-all address: image if you want to use custom address: image
  3. Done✅ All set! Try it now!

License 📜

This project is licensed under the MIT License.


Screenshots 📸

image


Acknowledgements 🙏

  • Cloudflare Workers for providing a powerful serverless platform.
  • Google Gemini AI for enabling intelligent email content extraction.
  • Bark for real-time notification capabilities.
  • Open Source Community for inspiring and supporting projects like AuthInbox.
  • ChatGPT for helping me writing some of the code.

TODO 📝

  • Multi-User Support: Add functionality to manage multiple users for increased flexibility and broader usage.
  • Enhance Front-End Design: Improve the UI/UX of the web interface for a more modern and user-friendly experience.