测试电子邮件发送功能的简单应用程序

mailhole的Python项目详细描述


一个简单的应用程序,用于测试电子邮件发送功能

应用程序启动两个服务器:

  • 一个简单的SMTP服务器,当它收到一封电子邮件时,会将其保存为JSON格式的文件
  • 一个简单的http服务器,为smtp服务器放置文件的目录中的文件提供服务。

默认行为是监听smtpconnections的127.0.0.1:4025和http连接的127.0.0.1:4080, 将电子邮件文件写入当前目录并登录到stdout。 所有这些设置都可以用命令行选项覆盖。也可以指定配置文件。

帮助:

$ 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.

安装

要安装,只需运行:

pip install 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

在另一个终端中,通过telnet连接发送电子邮件:

$ 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.

然后在运行mailhole的终端中,您应该得到以下日志行:

[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'}}

要测试http服务器,可以使用一个简单的curl请求:

$ 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java与Groovy正则表达式匹配混淆   java控制台未定义为JSNI   主目录中的java指针异常   java如何获取hashmap中的arrayList的大小   ApachePOI用于文本,Java代码中的word doc(.docx)中没有进行追加   Ruby对象到Java对象   JavaSpringJPA哈希集只返回一个值   Java在执行由配置了精确类路径参数的mavenjarpluin生成的可执行jar时无法找到依赖项   java我试图在画布上写一个文本,但什么也没发生   java HTTP 404源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式。不起作用   java提取小数点后的最后一个数字   oop Java:无法访问对象的元素   PHP URL中RecyclerView中的java句柄空异常   不调用OnCreateViewHolder的java Update RecyclerView适配器项