a simple and fast disposable mail service that works directly with your imap server. No database required.
You need a domain with catch-all-mailbox and an imap account.
Then void-mail will automatically load all mails from the imap server.
When the user opens the void-mail web application, he/she can read the mails corresponding to a specific address.
See FAQ
- Push-Notification on new emails.
- Mail presentation are sanitized to avoid tracking.
- In-Memory cache for very fast mail access.
- No database required! You just need a catch-all-mailbox imap server.
See Installation
These are all set as environment variables. They are loaded in config.js
| Parameter | Type | Description |
|---|---|---|
| DOMAIN | String | The domain part after the @, where your receive emails. (e.g. example.com) |
| IMAP_SERVER | String | The imap server address. (e.g. imap.example.com) |
| IMAP_USER | String | The username used to sign into the imap server. |
| IMAP_PASSWORD | String | The password used to sign into the imap server. |
| IMAP_REFRESH_INTERVAL_SECONDS | Integer | How often to check for new messages on the imap server. (default: undefined) Usually the application reacts immediately to new arrived mail. |
| PORT | Integer | On which port to run the http interface. (default: 3000) |
| DELETE_MAILS_OLDER_THAN_DAYS | Integer | How many days to to wait before deleting messages. (default: 30) |
This mostly works, but some things need to be done:
Cleanup:
- error handling everywhere (how to verify that all promises are catched, and eventEmitter have on-error?)
Features:
- better random names
Testing:
- provide config for fixed data for offline testing
- create tests
Maybe Later:
-
docker deployment
-
support multiple domains
-
Reactive imap stream as lib
imap stream module
- fetches uids
- fetches each message headers
- emits a new mail for each message
- keeps a list of all emited uid, not to send those again
- fetch uids again by timer and server trigger, fetch new messages
mail manager / frontend store/cache
- read mail stream
- notify users about new messages
- store a copy of the headers to serve the frontend
- use email-store
- fetch and cache full mails on request
-
reduce code base, if possible
GPL © Aravindo Wingeier

