Skip to content

An actually good disposable email service everyone should totally use!

License

Notifications You must be signed in to change notification settings

Team-Tritan/Disposable-Email

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tritan Disposable Mail

Tritan Disposable Mail aims to change the temporary email experience by providing a user-friendly interface similar to a traditional inbox while offering the functionality of a temporary mail service. Unlike existing solutions, Tritan Temp Mail creates individualized inboxes rather than relying on catch-all emails, enhancing privacy and organization.

This codebase also gives users the ability to send emails from their custom mailboxes, regenerate new addresses with the click of a button (literally), and view their sent emails in addition to deleting individual messages or their entire mailbox as a whole. Say goodbye to catch all temp mail services, yuck.

Don't want to self host? You can use our hosted version, here.

Backend

The backend is built with Express and TypeScript. It uses custom made wrappers, such as imap for fetching emails, smtp for sending emails, and mongoose for interacting with MongoDB.

Frontend

The frontend is built with Next.js and TypeScript. It uses Zustand for state management and Tailwind CSS for styling.

Getting Started

  1. Clone the repository: https://github.com/team-tritan/temp-mail

    git clone https://github.com/team-tritan/Disposable-Mail/
    
    # In the backend directory
    cd backend
    npm install
    
    # In the frontend directory
    cd ../frontend
    npm install
    
  2. Edit the config files.

    • You will need to edit backend/config.ts and frontend/next.config.js for their appropriate values. To avoid messiness with changing from local to production env (since next is client side), we are proxying API requests using Next Rewrites. You will need to setup an Nginx proxy or something, then place that domain in the next rewrite section.
  3. Start the application in dev mode:

    # In the backend directory
    npm run dev
    
    # In the frontend directory
    npm run dev
  4. Auto build and run the application in production:

Notes

  • This project was specifically made to work with the Mailcow API for creating user accounts.

  • The user authentication for email accounts is stored under local storage. If the connection is rejected, it will remove the auth and tell the user to refresh. If there is nothing in local storage, it creates the account and stores the tokens.

  • To avoid sent mail abuse or any subpoenas, sent mail logs are stored in MongoDB. We're also planning on using MongoDB to set an expiration time for any temp mail accounts to automatically clean up the mail server. This is SoonTM.

  • Once a mailbox is deleted, it is genuinely gone forever. The only data stored in the database is the time of creation, email auth, and sent messages.

Contributing

Contributions are welcome! Please feel free to submit a pull request with any neat features.

Developed by

Tritan Internet! We provide hosting and various services, you can visit our website here.

Support Us

You can buy us a coffee or purchase hosting.

License

This project is licensed under the MIT License.

Screenshots

base ui compose email email in viewer alerts