Pyramid的Sendmail包
项目描述
pyramid_mailer
pyramid_mailer 是一个用于从 Pyramid 应用程序发送电子邮件的软件包。它与 Python 2.7、3.3、3.4 和 3.5 以及 PyPy 兼容。
本软件包包括
使用易于使用的 API 对低级 Python email 库进行封装,该 API 包括附件和多重内容。
立即发送电子邮件或将电子邮件添加到 maildir 队列。
在事务内管理电子邮件发送,以防止代码抛出异常时发送电子邮件。
有助于单元测试的功能。
pyramid_mailer 使用 repoze.sendmail 库来管理电子邮件发送和事务管理,并从 Zed Shaw 的 lamson 中借用代码(已获得许可)来封装电子邮件消息。有关更多信息,请参阅 LICENSE.txt 文件。
链接
变更日志
0.15.1 (2016-12-13)
拉取请求 #83:向 DebugMailer 和 DummyMailer 添加新的 .bind 方法。此外,pyramid_mailer.testing 和 pyramid_mailer.debug 现在添加了 request.mailer 请求属性。
0.15 (2016-12-06)
拉取请求 #49:支持 '7bit' 和 '8bit' 转换编码。
拉取请求 #70:如果 username 和 password 均设置为空字符串,现在 Mailer.from_settings 将其解释为设置为 None。之前,将它们设置为空字符串会导致使用空用户名和密码强制进行 SMTP 认证。
拉取请求 #71:向 Attachment 构造函数添加 content_id 参数,允许您设置 Content-ID 头部,从而可以从 HTML 正文引用它。
拉取请求 #72:将 DebugMailer 保存的邮件的文件扩展名更改为 .eml。.eml 是存储纯文本 MIME (rfc822) 电子邮件的标准文件格式。
拉取请求 #77:删除对 Python 2.6 和 3.2 的支持。
添加对 Python 3.5 的支持。
拉取请求 #78:如果通过 pyramid_tm 设置的 request.tm 可用,则支持每个请求的事务管理器。
0.14.1 (2015-05-21)
启用与 Pyramid 的兼容性测试,直到 1.2。它可能仍然可以工作,但我们不再对其进行测试。
修复了 mailer.debug ini 选项未正确转换为 int 的错误。在 Python 2 中没有显示出来,因为字符串到整数的比较在那里是有效的,但它是一个潜在的错误。请参阅 https://github.com/Pylons/pyramid_mailer/pull/68
0.14 (2014-12-10)
添加了对 Python3.4、PyPy3 的支持。
拉取请求 #56:确保 DebugMailer 通过生成发送者来模拟 Mailer,如果没有传递发送者。
拉取请求 #52:为 mail.sendmail_app 和 mail.sendmail_template 添加配置选项,允许使用非默认的 sendmail 配置。
拉取请求 #50:添加 pyramid_mailer.debug 速记:在 development.ini 的一行中启用将电子邮件写入文件而不是发送它们。
0.13 (2013-07-13)
拉取请求 #45:现在邮件消息的默认传输编码为 'quoted-printable'。
0.12 (2013-06-26)
拉取请求 #35:通过 repoze.sendmail >= 4.0b2 添加了对 sendmail 二进制的支持。
从MailResponse对象中删除“all_parts”和“attach_all_parts”(pyramid_mailer未使用)。
附件类不再支持根据传入的filename从文件中读取数据。相反,仅将filename参数用作应放在Content-Disposition头中的内容,并将文件对象作为data传入。
主要代码重构:非ASCII附件发送现在真正可行,大部分代码是从Lamson那里剽窃的,已被移除并替换。
需要repoze.sendmail >= 4.1
0.11 (2013-03-28)
问题#29:允许通过附件设置正文和HTML的Content-Transfer-Encoding。
问题#32:修复了同时具有HTML和纯文本正文以及附件的消息的处理。
问题#24:确保在Python 3.x下pyramid_mailer.response.to_message返回文本。
已取消对Python 2.5的支持。
0.10 (2012-11-22)
将附件的默认传输编码设置为base64,并允许为附件提供一个可选的transfer_encoding参数。目前支持base64或quoted-printable。
正确处理Mailer.from_settings布尔选项,包括tls和ssl。
支持setup.py dev(安装测试依赖项)。
在tox.ini中使用setup.py dev。
0.9 (2012-05-03)
添加了对多部分消息中uncode编码的测试。
依赖repoze.sendmail >= 3.2(修复了Unicode多部分消息编码)。
0.8 (2012-03-26)
解决Python 3.2.0处理空头部的bug。这允许在所有平台上正确处理仅cc和仅bcc的电子邮件(不再需要recipient=)。
0.7 (2012-03-26)
打包发布
0.6 (2012-03-20)
兼容Python 2.5、2.6、2.7、3.2和pypy。
删除了对Jython的显式支持。它可能仍然有效,但我们不再使用自动化测试来测试它。
需要repoze.sendmail 3.0+。
在尝试发送仅cc或仅bcc消息时,引发更具体的异常。请参阅https://github.com/Pylons/pyramid_mailer/issues/14
0.6 (2012-01-22)
当同一头部的多个值时,使用“,”作为电子邮件头部分隔符而不是“;”(按照RFC822)。
允许收件人电子邮件列表为元组或列表(以前只是列表)。
在邮件消息中不包括Bcc头(破坏了BCC的保密性)。请参阅https://github.com/Pylons/pyramid_mailer/pull/10
0.5.1 (2011-11-13)
修复了邮件发送器只发送“TO”字段中的地址的bug。
0.5 (2011-10-24)
通过将Lamson的MailResponse和相关代码复制到pyramid_mailer.response中来删除对Lamson的依赖。
0.4.X
pyramid_mailer.includeme函数添加,以支持config.include('pyramid_mailer')。
pyramid_mailer.testing模块添加,以支持config.include('pyramid_mailer.testing')。
pyramid_mailer.get_mailer API添加(请参阅文档)。
pyramid_mailer.interfaces模块重新添加(带有ZCA注册的标记IMailer接口)。
setup.cfg添加,包含覆盖率参数,允许使用setup.py nosetests --with-coverage。