用于人的SMTP客户端。
outbox的Python项目详细描述
这是您将看到的最简单的SMTP客户端。它是100%同步的…
用法
轻松为应用程序提供发件箱:
from outbox import Outbox, Email, Attachment # io.StringIO for Python 3 folks from StringIO import StringIO attachments = [ Attachment('kittens.jpg', fileobj=open('ducks.jpg', 'rb')), Attachment('my-transient-file.bin', fileobj=StringIO('some raw data')), ] outbox = Outbox(username='username', password='password', server='server', port=1234, mode='SSL') outbox.send(Email(subject='my subject', body='some nice sentiment', recipients=['nathan@getoffmalawn.com']), attachments=attachments) # html email with attachments outbox.send(Email(subject='my subject', html_body='<b>SOME REALLY NICE SENTIMENT</b>', recipients=['nathan@getoffmalawn.com']), attachments=attachments)
每次调用send()时,此方法都将登录到服务器。
或者,您可以使用发件箱作为上下文管理器:
with Outbox(username='username', password='password', server='server', port=1234, mode='SSL') as outbox: outbox.send(Email(subject='my subject', body='some nice sentiment', recipients=['nathan@getoffmalawn.com']), attachments=attachments) # html email with attachments outbox.send(Email(subject='my subject', html_body='<b>SOME REALLY NICE SENTIMENT</b>', recipients=['nathan@getoffmalawn.com']), attachments=attachments)
使用发件箱作为上下文管理器还有一个额外的好处,就是执行一次登录即可发送所有电子邮件。
安装
安装outbox.py很简单:
$ pip install outbox
更改历史记录
- 0.1.8(2014年6月24日)
- 感谢高桥秀彦的以下贡献!
- 添加了RFC2047样式编码支持。
- 改进了对多部分消息的支持。
- 0.1.7(2014年6月24日)
- 感谢Hideaki Takahashi提交了一份清单,该清单允许通过PIP再次安装发件箱(在0.1.6中中断)
- 0.1.6(2014年6月24日)
- 添加了匿名发件箱(anonymousoutbox)类,该类用于连接到不执行身份验证的服务器。
- 详细说明outbox.email的文档。
- 修复了使用Python3(在dict上调用iteritems)时的错误。
- 将项目移动到github。
- 0.1.5(2013年3月3日)
- 感谢Peter Naudus的以下贡献!
- 向发件箱类添加调试参数,以切换smtplib的调试。
- 向email类添加了fields参数,以允许设置其他email字段。
- 连接和断开现在已暴露。
- 一些连接代码的内部清理。
- 0.1.4(2012年10月29日)
- 处理将单个收件人作为字符串传递,而不是强制收件人成为列表。
- 正确处理UTF8电子邮件。谢谢,张明远! 我怀疑我已经涵盖了每个用例,所以在构建电子邮件时可以传入要使用的字符集。
- 在发件箱类中添加了一个sender_address方法,用于验证用户名不够好的情况。
- 0.1.3(2012年7月3日)
- 使几行代码更容易理解。没有功能变化。
- 更新了以我的名义而不是Kenneth Reitz持有版权的许可证。这是否意味着直到现在他还拥有图书馆的版权?我能换个驾照吗?我不确定。
- 0.1.2(2012年6月2日)
- 使发件箱成为上下文管理器,因此它可以与with语句一起使用。 如示例中所述,这有一个额外的好处,即执行一次登录即可发送所有电子邮件,您应该使用WITH语句获得更好的性能。
- 已删除附件的原始参数和文件路径参数。他们都请求指向一个类似文件的对象,所以这就是你现在所拥有的-一个名为fileobj 的参数
- 修复了尝试发送二进制附件时出现的恼人的编码错误。
- 电子邮件对象不再具有类型的参数。相反,这里有body和html_body,因此您可以发送包含html和纯文本正文的电子邮件。
- 0.1.1(2012年5月27日)
- 初始版本