Auth Inbox 📬
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!
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 ⚙️
-
Prerequisites
- Install Wrangler
npm install wrangler -g-
Create a Google AI Studio API
-
Bind a domain to your Cloudflare account
-
(Optional) Download the Bark App and get a Bark Token from the App
-
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 = "["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
-
Deploy your own worker 🌐 Deploy your Worker to make your project accessible on the Internet. Run:
npx wrangler deployYou will get output like this:
Outputs: https://auth-inbox.<YOUR_SUBDOMAIN>.workers.devYou can now visit the URL for your newly depolyed Auth Inbox for checking the email results.
-
Set Email Forwarding ✉️ Go to Cloudflare Dashboard ->
Websites-><your-domain>->Email->Email-Routing->Routing Rules -
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.
- 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.
- API: Add API functionality.