Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wilgucki/selfhosted_disposable_email_service
https://github.com/wilgucki/selfhosted_disposable_email_service
aws disposable-email email self-hosted serverless ses
Last synced: 17 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/wilgucki/selfhosted_disposable_email_service
- Owner: wilgucki
- License: mit
- Created: 2020-07-19T07:02:59.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-03-20T04:46:08.000Z (almost 4 years ago)
- Last Synced: 2024-11-11T23:43:14.975Z (3 months ago)
- Topics: aws, disposable-email, email, self-hosted, serverless, ses
- Language: Python
- Homepage:
- Size: 36.1 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Self-hosted Disposable Email Service
Long story short, this is a self-hosted email service that allows you to create a disposable email address(es).
It uses AWS goodness and it costs next to nothing (unless you get bazillions of emails).**At the moment this project is just a proof of concept. Eventually it will become real deal. Until then do not use it
for production purposes or to access sensitive data. You have been warned.**## Installation
* register a domain
* [set up email receiving](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html)
* build and deploy stacksam build --use-container
sam deploy --guided* in AWS console set created ruleset as default
* [move out of the SES sandbox](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html) (haven't done that yet so you're on your own)## Usage
* go to Amazon Cognito console and create new user
* go to login url (returned in the cloudformation output) and login using user created in the previous step
* go to DynamoDB `_tokens` table and copy id_token value
* run those requests to manage your disposable emailsCreate new email address
POST /emails
Accept: */*
Cache-Control: no-cache
Auth:
email=&forward_to=List all email addresses
GET /emails
Accept: */*
Cache-Control: no-cache
Auth:Delete email address
DELETE /emails/
Accept: */*
Cache-Control: no-cache
Auth:I know, it's not user friendly. Obviously the client part is missing. It will be added soon(ish), I'll start with web
and Slack clients.## TODO:
* TODOs from the code
* log stuff like errors and other important information
* create whole bunch of metrics and alarms (plus send notifications when something goes wrong)
* handle errors gracefully
* split cloudformation template into separates stacks (api, mail forwarder, web site, slack client, etc.)
* move dependencies into a layer
* tests, tests, tests
* much better docs
* experiment with different regions
* check if there is a cloudformation way of setting default ruleset (SES thingy)
* forward actual email message (aka move out of the SES sandbox)