opentrashmail/README.md

78 lines
3.5 KiB
Markdown
Raw Normal View History

2019-08-14 14:18:49 +00:00
<p align="center">
<a href="" rel="noopener">
2019-08-14 14:33:56 +00:00
<img height=200px src="https://raw.githubusercontent.com/HaschekSolutions/opentrashmail/master/web/imgs/logo_300.png" alt="Open Trashmail"></a>
2019-08-14 14:18:49 +00:00
</p>
<h1 align="center">Open Trashmail</h1>
<div align="center">
![](https://img.shields.io/badge/php-7.1%2B-brightgreen.svg)
![](https://img.shields.io/badge/python-2.7%2B-brightgreen.svg)
2019-08-16 13:06:42 +00:00
[![](https://img.shields.io/docker/pulls/hascheksolutions/opentrashmail?color=brightgreen)](https://hub.docker.com/r/hascheksolutions/opentrashmail)
2019-08-16 13:07:43 +00:00
[![](https://img.shields.io/docker/cloud/build/hascheksolutions/opentrashmail?color=brightgreen)](https://hub.docker.com/r/hascheksolutions/opentrashmail/builds)
2019-08-14 14:18:49 +00:00
[![Apache License](https://img.shields.io/badge/license-Apache-blue.svg?style=flat)](https://github.com/HaschekSolutions/opentrashmail/blob/master/LICENSE)
[![HitCount](http://hits.dwyl.io/HaschekSolutions/opentrashmail.svg)](http://hits.dwyl.io/HaschekSolutions/opentrashmail)
[![](https://img.shields.io/github/stars/HaschekSolutions/opentrashmail.svg?label=Stars&style=social)](https://github.com/HaschekSolutions/opentrashmail)
#### Host your own `trashmail` solution to use with your own domains or subdomains
</div>
2019-08-15 19:43:55 +00:00
![Screenshot of Open Trashmail](https://pictshare.net/shz4tq.png)
2019-08-14 14:18:49 +00:00
# Roadmap
- [x] Mailserver
- [x] Storing received mails in JSON
- [x] Storing file attachments
2019-08-16 13:06:42 +00:00
- [x] Docker files and configs
2019-08-14 14:18:49 +00:00
- [ ] Web interface
2019-08-15 19:43:55 +00:00
- [x] Choose email
- [x] Get random email address
- [x] Download attachments in a safe way
- [x] Display Text/HTML
2019-08-15 19:45:49 +00:00
- [x] API so all features from the site can also be automated and integrated
2019-08-16 08:30:23 +00:00
- [x] Automatically check for new emails while on site
2019-08-15 19:43:55 +00:00
- [ ] Secure HTML so no malicious things can be loaded
- [ ] Display embedded images inline using Content-ID
- [ ] Admin overview for all available email addresses
- [ ] Delete messages
2019-08-16 08:30:23 +00:00
- [ ] Make better theme
2019-08-15 19:43:55 +00:00
- [ ] Configurable settings
2019-08-15 19:45:49 +00:00
- [x] Choose domains for random generation
2019-08-15 19:43:55 +00:00
- [ ] Choose if out-of-scope emails are discarded
- [ ] Honeypot mode where all emails are also saved for a catchall account
2019-08-16 08:30:23 +00:00
- [ ] Optionally secure whole site with a password
- [ ] Optinally allow site to be seen only from specific IP Range
2019-08-13 21:35:40 +00:00
# Features
2019-08-16 08:52:03 +00:00
- Python powered mail server that works out of the box for any domain you throw at it
- Web interface to manage emails
- Generate random email adresses
2019-08-15 19:43:55 +00:00
- 100% file based, no database needed
2019-08-16 13:06:42 +00:00
# Quick start
Simple start with no persistence
2019-08-16 13:06:42 +00:00
```bash
2019-08-16 13:06:42 +00:00
docker run --it -p 25:25 -p 80:80 hascheksolutions/opentrashmail
```
Saving data directory on host machine
```bash
docker run -p 80:80 -p 25:25 -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail
```
2019-08-16 20:21:09 +00:00
Complete example with running as daemon, persistence, a domain for auto-generation of emails and auto restart
```bash
2019-08-16 20:21:09 +00:00
docker run -d --restart=always --name opentrashmail -e "DOMAINS=mydomain.eu" -p 80:80 -p 25:25 -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail
```
2019-08-15 19:43:55 +00:00
# How it works
2019-08-16 08:52:03 +00:00
The heart of Open Trashmail is a **python powered SMTP server** that listens on incoming emails and stores them as json objects. The server doesn't have to know the right Email domain, it will just **catch everything** it receives. You only have to **expose port 25 to the web** and set an **MX record** of your domain pointing to the IP adress of your machine.
The server then saves all received emails as JSON objects and the web interface can access it.