跳转到主要内容

测试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 (25.9 kB 查看散列)

上传时间 源代码

构建分布

localmail-0.5.0-py2.py3-none-any.whl (13.7 kB 查看散列)

上传时间 Python 2 Python 3

由以下机构支持