Skip to content

self-hosted disposable email service (php) using catch-all and imap

License

Notifications You must be signed in to change notification settings

warioishere/disposable-mailbox

 
 

Repository files navigation

disposable-mailbox

A self-hosted disposable mailbox service (aka trash mail) ☁️ ✉️

Screenshot

Features

  • Anonymous usage, generate random email addresses.
  • New Mail notification. Download and delete your emails.
  • Display emails as text or html with sanitization filter.
  • Display emails based on one catch-all imap mailbox.
  • Only requires PHP >=7.2 and imap extension

Usage

Requirements

Before you start ❗

Installation

Disposable-mailbox can be installed by copying the src directory to a webserver.

  1. assure the imap extension is installed. The following command should not print any errors:

     <?php print imap_base64("SU1BUCBleHRlbnNpb24gc2VlbXMgdG8gYmUgaW5zdGFsbGVkLiA="); ?>
    
  2. download a release or clone this repository

  3. Update to the php Version you have in the composer.json file

  4. Update your php dependcies with composer update if you use a higher php Version

  5. copy the files in the src directory to your web server (not the whole repo!).

  6. rename config.sample.php to config.php and apply the imap settings. Move config.php to a safe location in a parent directory outside the public_html, so it is not reachable through the browser. The Application will automatically detect your config.php if its in the parent directory for example.

  7. open it in your browser, check your php error log for messages.

Build it yourself

The src directory contains all required files. If you want to update the php dependencies, you can update them yourself. You must have composer installed.

Install php dependecies:

composer update

Troubleshooting

  • IMAP Server has invalid certificate: You might have to add novalidate-cert to the IMAP settings. See flags on http://php.net/manual/en/function.imap-open.php.

  • Error 500, Internal error: Check your error log file. Add to config.php:

    ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);

Testing on MacOs

  • brew install php
  • brew tap kabel/php-ext
  • brew install kabel/php-ext/php-imap
  • php -S localhost:8000 -t src

Credit 👍

This could not be possible without...

About

self-hosted disposable email service (php) using catch-all and imap

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 91.1%
  • CSS 8.9%