4.9 KiB
AuthInbox
AuthInbox is an open-source project designed to securely manage and view authentication emails. It automatically processes incoming emails, extracts verification codes or links, stores them in a database, and provides a user-friendly web interface for administrators to review the extracted information. Additionally, AuthInbox can send notifications via Bark, enhancing real-time alert capabilities.
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.
- D1Database: Cloudflare's serverless SQL database for storing email data.
- TypeScript: Strongly typed programming language for robust and maintainable code.
- Google AI 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
-
Prerequisites
Install Wrangler
npm install wrangler -gCreate a Google AI API Have a domain binded on your Cloudflare account
-
Initialization
git clone https://github.com/TooonyChen/AuthInbox.git cd AuthInbox npm install -
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
-
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 = 'xxxxxxxxx' # set to your bark tokens on your iOS device
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
- Deploy your own worker
Deploy your Worker to make your project accessible on the Internet. Run:
You will get output like this:
npx wrangler deployYou can now visit the URL for your newly depolyed auth inbox for checking the email results.Outputs: https://inbox-d1.<YOUR_SUBDOMAIN>.workers.dev - Set Email Forwarding
Go to Cloudflare Dashboard ->
Websites-><your-domain>->Email->Email-Routing->Routing Rulesif you want to usecatch-all address:if you want to use
custom address: - Done All set! Try it now!
License
This project is licensed under the MIT License.
Screenshots
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.