Git Product home page Git Product logo

void-mail's Introduction


disposable mailbox

a self-hosted, simple and fast disposable mail service that works directly with your imap server. No database required.

Build Status XO code style FOSSA Status

Project status: Abandoned

This code is not maintained any more, this is a read-only archive.

Why? I found that https://forwardemail.net and Apple's What is Hide My Email? solve my use cases and are much more convenient.

How it works

You need a domain with catch-all-mailbox and an imap account.

Your run the void-mail nodejs application on your own server. It 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

Features

  • 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.
  • Deletes emails older than X days.

Install

One click installation: Deploy

See Installation

Configuration Parameters

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)
DEBUG String Enable debug logging with value void-mail:* (default: disabled)

TODO

This mostly works, but some things need to be done:

Testing:

  • create unit/integration tests

Maybe Later:

Team

Aravindo Wingeier

Aravindo Wingeier

License

GPL-3.0 © Aravindo Wingeier

BrowserStack

Supported by BrowserStack, which allows us to test projects online with any browser as a service. :-)

void-mail's People

Contributors

dependabot[bot] avatar erm3nda avatar fossabot avatar raph2i avatar synox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

void-mail's Issues

UnhandledPromiseRejectionWarning: Handle missing To field

System keeps working, but there's no report about the number of emails on system or other.

root@serveros:~# pm2 logs 0

[TAILING] Tailing last 15 lines for [0] process (change the value with --lines option)
/root/.pm2/logs/email-out.log last 15 lines:
0|email |
0|email | > [email protected] start /root/email
0|email | > node ./bin/www
0|email |

/root/.pm2/logs/email-error.log last 15 lines:
0|email | (node:1969) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'flatMap' of undefined
0|email | at ImapService._createMailSummary (/root/email/mailbox/imap-service.js:166:5)
0|email | at mails.forEach.mail (/root/email/mailbox/imap-service.js:223:11)
0|email | at Array.forEach ()
0|email | at ImapService._getMailHeadersAndPublish (/root/email/mailbox/imap-service.js:219:10)
0|email | at process._tickCallback (internal/process/next_tick.js:68:7)
0|email | (node:1969) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
0|email | (node:1969) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Docker

Docker compatibility: Dockerfile, docker-compose.yml or a prebuilt docker image.

Click on notifications opens login page

We want the page to be reloaded. But then when clicking the notification, the browser can not find the tab (because it was replaced) and will open a new one at /.

Options:

  • remove Notifications
  • dont make reload
  • ...?

On npm install it can't find the synox/imap-simple package

The package is trying to install the synox/imap-simple packagebut is not working.

This is the log:

...
npm ERR! Error while executing:
npm ERR! /usr/local/bin/git ls-remote -h -t ssh://[email protected]/synox/imap-simple.git
npm ERR! 
npm ERR! ERROR: Repository not found.
npm ERR! fatal: Could not read from remote repository.
npm ERR! 
npm ERR! Please make sure you have the correct access rights
npm ERR! and the repository exists.
npm ERR! 
npm ERR! exited with error code: 128

npm ERR! A complete log of this run can be found in:
npm ERR!    -----

is this package still used? If not can I remove it?

UnhandledPromiseRejectionWarning (again -> https://github.com/synox/void-mail/issues/9)

Im getting again some problems like what i had in #9

This is the current output.

    # pm2 logs 0
[TAILING] Tailing last 15 lines for [0] process (change the value with --lines option)
/root/.pm2/logs/email-out.log last 15 lines:
0|email    | 
0|email    | > [email protected] start /root/email
0|email    | > node ./app.js
0|email    | 

/root/.pm2/logs/email-error.log last 15 lines:
0|email    | (node:30300) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'toLowerCase' of undefined
0|email    |     at MailRepository.add (/root/email/domain/mail-repository.js:22:29)
0|email    |     at mail.to.forEach.to (/root/email/application/mail-processing-service.js:56:24)
0|email    |     at Array.forEach (<anonymous>)
0|email    |     at MailProcessingService.onNewMail (/root/email/application/mail-processing-service.js:55:11)
0|email    |     at ImapService.imapService.on.mail (/root/email/app.js:28:24)
0|email    |     at ImapService.emit (events.js:198:13)
0|email    |     at mails.forEach.mail (/root/email/application/imap-service.js:222:11)
0|email    |     at Array.forEach (<anonymous>)
0|email    |     at ImapService._getMailHeadersAndEmitAsEvents (/root/email/application/imap-service.js:218:10)
0|email    |     at process._tickCallback (internal/process/next_tick.js:68:7)
0|email    | (node:30300) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
0|email    | (node:30300) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Suggestion - Add email GET request counter

Having a counter from imap email with catchall will lend to just a counter wich also reflects all spam on it. For better accuracy i do recommend to count also each GET, getting a count of "used emails from website" and "number of emails readed".

Regards.

error Failed at the [email protected] start script.

When starting it fails with this error in the npm log..

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'run', 'start' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle [email protected]prestart: [email protected]
6 info lifecycle [email protected]
start: [email protected]
7 verbose lifecycle [email protected]start: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]
start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/opt/void-mail/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
9 verbose lifecycle [email protected]start: CWD: /opt/void-mail
10 silly lifecycle [email protected]
start: Args: [ '-c', 'node ./app.js' ]
11 silly lifecycle [email protected]start: Returned: code: 1 signal: null
12 info lifecycle [email protected]
start: Failed to exec start script
13 verbose stack Error: [email protected] start: node ./app.js
13 verbose stack Exit status 1
13 verbose stack at EventEmitter. (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
13 verbose stack at EventEmitter.emit (events.js:198:13)
13 verbose stack at ChildProcess. (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:198:13)
13 verbose stack at maybeClose (internal/child_process.js:982:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
14 verbose pkgid [email protected]
15 verbose cwd /opt/void-mail
16 verbose Linux 4.15.0-58-generic
17 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "start"
18 verbose node v10.16.3
19 verbose npm v6.9.0
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] start: node ./app.js
22 error Exit status 1
23 error Failed at the [email protected] start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.