Disposable email SMTP server, also useful for development.
Deploy this app to Linode with a free $100 credit!
See Maildrop in action.
Maildrop is an open-source, scalable, high-performance version of Mailinator, a "temporary inbox" that you can give out when you don't want to give out your real e-mail address. Maildrop inboxes are designed to be quick and disposable.
The design goals are to be roughly 90% of the speed of Mailinator, while adding additional functionality and the ability to horizontally scale quickly and easily.
Maildrop uses Haraka for its SMTP server, running inside a Docker container. Currently this container is deployed to Amazon ECS and has an auto-scaling policy to allow it to scale elastically.
The website is written as a React application, allowing for deployment to an S3 bucket or other static host. The backend API uses the Serverless framework to create Lambda functions that automatically scale based on usage.
Maildrop is written mainly in Typescript. Functionality includes:
Install Docker, Node/NPM, Redis, and decide on how you will serve your containers. Maildrop uses Amazon ECS.
This will give you four subdirectories, "api" is the serverless API backend, "infrastructure" is a set of terraform scripts to set up your own infrastructure, "smtp" is the mail transfer agent, and "web" is the website.
First, install Terraform. Then go into "infrastructure" and run "terraform apply". This will guide you through creating your infrastructure.
Go into "smtp" and run "docker build -t your-image:latest". This will create a Docker image of the Maildrop SMTP server.
Go into "api" and run "npm i" then "npm run compile && npm run deploy". This will generate the Lambda functions needed for the website.
Go into "web" and run "npm start". This will create a directory of the Maildrop website.
To build a production website, run "npm run build".
Version 3.0 is a complete rewrite.
Please login to review this project.
No reviews for this project yet.
Comments (0)
Please login to join the discussion on this project.