Fakemail : an asynchronous command line email proxy
####################################################
Fakemail is a simple SMTP server that runs as a command line script, relaying
incoming messages to an upstream server, to an HTTP endpoint or to stdout.
Fakemail is useful for testing emails during development: it can rewrite the
envelope-to address on all messages to a single address, ensuring messages cannot be
sent to real users.
Fakemail is useful for processing inbound messages in a web application,
by acting as an SMTP-to-HTTP proxy.
Caution: Fakemail always runs as an open relay. Ensure you do not expose fakemail on a public address.
Installation
pip install -r requirements.txt
Usage
To see an up to date list of command line options, run::
python fakemail.py --help
Examples
Redirect emails for development:
python fakemail.py --bind 127.0.0.1:2525 --relay 127.0.0.1:25 --rewrite-to=myaddress@example.org
View emails on stdout::
python fakemail.py --bind 127.0.0.1:2525 --stdout
Feed emails into an HTTP endpoint (SMTP-to-HTTP)::
python fakemail.py --bind 127.0.0.1:2525 --relay-url="https://mywebservice.example.org/mail-in"
python fakemail.py --bind 127.0.0.1:2525 --relay-url="https://user:pass@mywebservice.example.org/mail-in"
Multiple relays are possible: you can relay via SMTP, to an HTTP endpoint,
and log to stdout in a single process. If any one relay fails the mail will be
rejected, even if other relays succeed.