测试SMTP/IMAP服务器用于本地集成测试
项目描述
Localmail
为本地人。
Localmail是一个SMTP和IMAP服务器,将所有消息存储到单个内存邮箱中。它设计用于加速在发送电子邮件的系统上运行测试套件,例如带有确认码的新账户注册电子邮件。它也可以用于测试SMTP/IMAP客户端代码。
功能
快速且健壮的IMAP/SMTP实现,包括多部分消息和Unicode支持。
包括简单的HTTP接口用于读取消息,这对于检查HTML电子邮件很有用。
与Python的stdlib客户端兼容,以及mutt和thunderbird等客户端。
支持认证,但完全忽略,所有消息都在单个邮箱中。
默认情况下不持久化消息,关闭时会丢失。您可以选择将消息以mbox格式记录到磁盘。
缺少的功能/待办事项
SSL支持
警告:这不是一个真正的SMTP/IMAP服务器 - 不适用于生产使用。
运行localmail
twistd localmail
这将后台运行localmail,SMTP在2025端口上,IMAP在2143端口上,它将记录到./twistd.log文件中。如果您想在前台运行,请使用-n选项,如下所示。
twistd -n localmail
您可以通过传递参数来控制参数。
twistd localmail --imap <port> --smtp <port> --http <port> --file localmail.mbox
您可以将localmail配置为使用随机端口。端口号将被记录。待办事项:启用将随机端口号写入文件的功能。
twisted -n localmail --random
嵌入
如果您想在另一个非twisted程序中嵌入localmail,例如测试运行器,请按照以下步骤操作。
import threading
import localmail
thread = threading.Thread(
target=localmail.run,
args=(2025, 2143, 8880, 'localmail.mbox')
)
thread.start()
...
localmail.shutdown_thread(thread)
这将在一个独立的线程中运行twisted反应器,并在退出时关闭它。
如果您想使用随机端口,您可以传递一个回调,其中包含服务正在监听的端口号。
import threading
import localmail
def report(smtp, imap, http):
"""do stuff with ports"""
thread = threading.Thread(
target=localmail.run,
args=(0, 0, 0, None, report)
)
thread.start()
历史
0.4 (2015-08-14)
支持使用随机端口号
作为通用轮子提供,一般包装改进
简单的HTTP接口用于浏览邮件(需要jinja2)
支持写入mbox文件
修复日期以与mutt兼容,包中包含示例muttrc。
0.3 (2013-05-24)
支持多部分消息[通过Ed Jannoo]
IMAP UID支持
支持python 2.6、2.7和pypy,通过tox测试
0.2 (2012-11-13)
首次公开发布
基本的SMTP/IMAP服务器
致谢
“localmail”由Simon Davy编写和维护
贡献者
以下人员直接或间接为此项目做出了贡献
Ed Jannoo <ed@azordi.com>
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
localmail-0.5.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 63ad0219e9772a39970682a126ccb34ae8760983b8a90d7ccf877ba97d27d424 |
|
MD5 | c905d268b566b14574a185574d5fad55 |
|
BLAKE2b-256 | 947f263eea21591438afe38bf0ae77054e06591b61b56e94865aeb7d61e179c9 |
localmail-0.5.0-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7050ac0319d6e3126ebf3a49de67e5a1115d9809eb7efd84886de3ce7d35f359 |
|
MD5 | 68df10e78c8d0ceb92dcbe815644fb50 |
|
BLAKE2b-256 | 8681072be46d0327bcc050c99fb2b3a8cfa3bf6e2706c865a821734e0d7bea3f |