dist | ||
src | ||
.babelrc | ||
.eslintrc | ||
.gitignore | ||
build.sh | ||
composer.json | ||
composer.lock | ||
package.json | ||
readme.md | ||
screenshot.png | ||
server.js | ||
Vagrantfile | ||
webpack.config.js |
self-hosted disposable email service
Goals:
- easy to use: generate random name or use custom name, auto refresh
- easy to host: just php5 + imap extension
- easy to install: just copy files in
dist
- minimal code base: minimal features and complexity
Quality/Status:
This is alpha-tested software, do not use it in production yet, it may lose your mails and people may gain access to your mails. There are still unsolved problems. Contributions are welcome!
Licence
disposable-mailbox by github:synox is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Webserver requirements
- php >=5.3.0
- imap extension
- apache 2 (but should work on any webserver)
Installation
-
assure the imap extension is installed. The following command should not print any errors:
<?php print imap_base64("SU1BUCBleHRlbnNpb24gc2VlbXMgdG8gYmUgaW5zdGFsbGVkLiA="); ?>
-
clone or download this repository
-
copy the
dist
directory to your web server. -
rename
config.sample.php
toconfig.php
and apply the imap settings. Moveconfig.php
to a safe location outside thepublic_html
. -
open
backend.php
and set the new path toconfig.php
.
Build it yourself
Instead of using the files in the dist
directory you can also build it yourself. You must have npm and composer installed.
The files are written to the dist
directory. See also build.sh
.
Install php dependecies:
composer install
Copy backend files:
cp -rv src/{backend.php,config.sample.php} dist/
Install javascript dependencies:
npm install
Build frontend:
npm run build
Run frontend with development server:
npm start
There is a Vagrantfile, in case you are familiar with vagrant.
TODO
- setup a link redirection provider (to keep the existence of your installation secret)
- provide error message if config.php is missing or in a public folder.
Credit
This could not be possible without...