A simple application to test email sending functionality
The application starts two servers:
a simple SMTP server that when it receives an email saves it into a file in JSON format;
a simple HTTP server that serves files in the directory where SMTP server puts them.
Default behavior is to listen on 127.0.0.1:4025 for SMTPconnections and 127.0.0.1:4080 for HTTP connetctions,
write email files into current directory and log to STDOUT.
All of these settings can be overridden with command-line options. Also a configuration file can be specified.
Help:
$ mailhole -h
usage: mailhole.py [-h] [-m SMTP_HOST] [-p SMTP_PORT] [-t HTTP_HOST]
[-q HTTP_PORT] [-d MAILDIR] [-l LOG_FILE] [-c CONFIG_FILE]
optional arguments:
-h, --help show this help message and exit
-m SMTP_HOST, --smtp_host SMTP_HOST
SMTP server host (default: 127.0.0.1)
-p SMTP_PORT, --smtp_port SMTP_PORT
SMTP server port (default: 4025)
-t HTTP_HOST, --http_host HTTP_HOST
HTTP server host (default: 127.0.0.1)
-q HTTP_PORT, --http_port HTTP_PORT
HTTP server port (default: 4080)
-d MAILDIR, --maildir MAILDIR
Directory where emails are stored (default:
/Users/ay/PycharmProjects/mailhole)
-l LOG_FILE, --log_file LOG_FILE
Log file (default: None)
-c CONFIG_FILE, --config_file CONFIG_FILE
Config file path (default: None)
Default behavior is to listen on 127.0.0.1:4025 for SMTPconnections and
127.0.0.1:4080 for HTTP connetctions, write email files into current directory
and log to STDOUT. All of these settings can be overridden with the options
above. Also a configuration file can be specified that must contain all the
above options.
Installation
To install simply run:
pip install mailhole
Running
Start mailhole:
$ mailhole [2014-09-02, 13:04:17]: INFO: SMTP server listening on 127.0.0.1:4025 [2014-09-02, 13:04:17]: INFO: HTTP server listening on 127.0.0.1:4080
In another terminal send an email via a telnet connection:
$ telnet 127.0.0.1 4025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 ay-air Python SMTP proxy version 0.2 MAIL FROM: sender@mailhole.net 250 Ok RCPT TO: recepient@mailhole.net 250 Ok DATA 354 End data with <CR><LF>.<CR><LF> From: sender@mailhole.net To: recepient@mailhole.net Subject: Testing mailhole Hi! This is a mailhole test email . 250 Ok ^] telnet> Connection closed.
Then in the terminal with mailhole running you should get this log line:
[2014-09-02, 13:20:43]: DEBUG: {'body': ['Hi!\nThis is a mailhole test email\n'], 'to': ['recepient@mailhole.net'], 'from': 'sender@mailhole.net', 'headers': {'To': 'recepient@mailhole.net', 'From': 'sender@mailhole.net', 'Subject': 'Testing mailhole'}}
To test the HTTP server a simple curl request would work:
$ curl 127.0.0.1:4080/testing_mailhole__recepient@mailhole.net
{"body": ["Hi!\nThis is a mailhole test email\n"], "to": ["recepient@mailhole.net"], "from": "sender@mailhole.net", "headers": {"To": "recepient@mailhole.net", "From": "sender@mailhole.net", "Subject": "Testing mailhole"}}[2.1.2][refactoring] ~/PycharmProjects/gun
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file mailhole-0.0.1.tar.gz.
File metadata
- Download URL: mailhole-0.0.1.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
793b9f7f785c02b07600d97ad744d84d4993054fc9d599619e9b4a387ddbabdd
|
|
| MD5 |
6869d15a1e091b3e38f8a6f70cf0ca0e
|
|
| BLAKE2b-256 |
ad67dd6d64e09bc6f4146945c7c96211733376f279ac55af813fe66258d61c96
|