/disposable-email

DISCONTINUED: self-hosted simple disposable email system (php)

Primary LanguageCSS

WARNING: Discontinued

this repository is not maintained any more! please use https://github.com/synox/disposable-mailbox instead, which is a complete rewrite with angularjs. it is also simpler by using IMAP, without database and it that does not need "pipe to command".

self-hosted disposable email system

This disposable email solution can be hosted on your own standard PHP-webhoster. All you need is PHP with mailparse extension and "Pipe to a Program" functionality. The system is as simple as possible, with minimal codebase and complexity.

Usage

When accessing the web-app a random email address is generated for you. The page will reload until emails have arrived. You can delete emails and see the original sourcecode.

Example Screenshot

screenshot

Licence

Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

https://creativecommons.org/licenses/by-nc/4.0/

Requirements

Installation

  • assure the mailparse extension is installed. The following command should not print any error:

      <?php mailparse_msg_create(); ?>
    
  • Clone/download this repository

  • run composer install

Configuration

  • forward/pipe email to the php script app/pipe_input.php (e.g. cpanel docs)
  • (optionally) configure a different database like mysql in app/config.php
  • (optionally) configure the link redirection provider (to keep the existence of your installation secret) in app/config.php

TODO

  1. security audit against xss/sqli

development environment

There is a Vagrantfile to be used with vagrant.

OSX dependencies

  • install php: https://github.com/Homebrew/homebrew-php
  • add php to path: fish config: set PATH /usr/local/opt/php55/bin $PATH
  • pecl install mailparse
  • (see "php --ini" for file: ) echo "extension=mailparse.so" >> /usr/local/etc/php/5.5/php.ini

Troubleshooting

Mails do not appear in the mailbox

First make sure you check the php error log. also enable php error reporting with error_reporting(E_ALL); in config.php.

Then also try to run the command manually from the command line. For this login into your server by ssh. Create a sample mail (like https://gist.github.com/synox/fa11060975bec7250a46) and save it somewhere on the server. Then run the script the same way as the mailserver would pipe the mail to it.

    cat samplemail.txt | php /path/to/app/pipe_input.php

That should either process the mail or return an error.

I can't get it to work. It's too complicated.

I have another solution which is easier to configure and install: https://github.com/synox/disposable-mailbox

See also