跳转到主要内容

为Zope 2提供的异步事务感知的MailHost替代品

项目描述

MaildropHost产品为在Zope环境中使用MaildropHost对象发送电子邮件提供支持。与内置的MailHost对象不同,发送操作是从一个单独的进程中异步进行的。此外,MaildropHost可以选择与Zope事务机制集成,以确保重试的事务不会导致创建多个电子邮件。

优势在于,由于调用邮件机制可能会很慢,因此从网页发送邮件的速度会更快。使用MaildropHost,网页将立即返回。

MaildropHost使用单独的Python进程监控产品内部的邮件队列,并按管理员设置的间隔处理邮件。产品中包含单独的启动脚本,可以用于启动此监控进程。

无法成功发送的邮件将保留在内部队列中。每次尝试发送电子邮件都会记录到监控进程维护的日志文件中。该日志文件在每次maildrop运行后关闭,因此可以在不向maildrop守护进程发送任何特殊信号的情况下安全地旋转它。

邮件投递守护进程支持StartTLS,甚至支持认证SMTP。

从Zope版本2.11.0-beta开始,标准MailHost实现也支持异步邮件处理。如果您正在运行Zope 2.11及以上版本,您应该首先查看标准MailHost产品,看看它是否符合您的需求,然后再安装MaildropHost产品。

错误跟踪器

请将问题、错误报告或功能请求发布到http://www.dataflake.org/tracker/上的错误跟踪器。

SVN版本

您可以通过setuptools或zc.buildout使用Subversion检索最新代码,使用以下URL:

http://svn.dataflake.org/svn/Products.MaildropHost/trunk#egg=Products.MaildropHost

用法

安装后,请按照以下步骤使用此产品:

  • 编辑位于MaildropHost顶级目录中的“config”配置脚本,以反映您的特定需求,或者(可选)在文件系统中不同的位置添加自己的配置文件。有关如何从非标准位置使用配置文件的说明,请见下文。

  • 通过运行“start_maildrop”脚本或其他包含在包中的启动脚本(位于顶级MaildropHost目录下的maildrop/bin中)来启动邮件队列检查器。编辑启动脚本,将其指向您选择的配置文件。

  • 在ZODB中实例化一个MaildropHost对象;如果您在不同的位置创建了配置文件,请在ZMI的“编辑”选项卡上的“配置文件路径”设置中指定文件系统路径。

  • 现在,您可以使用例如dtml-sendmail标签来创建电子邮件,并在sendmail标签中使用mailhost="XYZ"参数将sendmail标签指向MaildropHost实例,或者使用MailHost API(请参阅Zope帮助系统)。

您可以用任何您喜欢的任何方式创建电子邮件消息,而不是使用dtml-sendmail和MaildropHost实例。只要格式正确(这样邮件队列检查器可以解析它,请参阅SAMPLE_MAIL.txt文件中的示例),并将其写入位于$MAILDROP_HOME/spool(或如果已定义,则$MAILDROP_SPOOL)的队列目录,那么邮件队列检查器就会将其拾取并尝试投递。

要向ZMI中的“配置文件路径”选项添加更多选择,您需要将它们添加到您的Zope实例配置文件zope.conf中。您需要创建一个名为“product-config maildrophost”的节,并使用以“config-path”开头的键列表路径。

<product-config maildrophost>
  config-path-1 /tmp/myconfig
  config-path-2 /usr/local/mail/maildropconfig
</product-config>

键必须是唯一的,因为ZConfig不允许在“product-config”配置节中存在重复的键。您必须重新启动Zope才能在ZMI中看到这些更改。

如果您使用不同的MaildropHost配置,则需要复制maildrop/bin中找到的启动/停止脚本,并相应地调整配置文件路径。

邮件文件格式

邮件文件的格式(请参阅SAMPLE_MAIL.txt)非常简单。第一行包含收件人地址,前面加“##To:”。第二行是发件人地址,前面加“##From:”。这些等同于信封的发件人和收件人地址。

接下来的几行是成为消息正文一部分的标题,它们是“To: <recipient>”,“From: <sender>”和“Subject: <subject>”。

实际消息与标题由一个空行分开。


安装要求

  • 一个工作的SMTP服务器

  • Zope 2.8.0或更高版本

  • 一个UNIX操作系统来运行maildrop守护进程。它不适用于Windows。

安装

如果您没有将MaildropHost作为egg安装,您可以将Products.MaildropHost/Products/MaildropHost目录从Products.MaildropHost/Products/MaildropHost手动复制到Zope可以找到的位置,例如“Products”目录。

$ cp -r Products.MaildropHost/Products/MaildropHost <zope>/lib/python/Products/

不要忘记之后重新启动Zope。

您将在MaildropHost目录中找到一个名为“config”的文件。此文件包含所有站点特定设置,您必须编辑它以符合您的需求。重要提示:由于此文件也被一些shell脚本引用,因此您不能在等号(=)周围放置任何空白字符!

独立maildrop守护进程的启动脚本,用于处理由MaildropHost Zope产品生成的邮件项,位于<MaildropHost>/maildrop/bin-folder中。这些脚本的功能以及如何使用它们,在该文件夹中的单独的README文件中有描述。

升级说明

  • 1.21至1.22:配置文件解析机制已更改,不再是Python导入。现在代码将寻找名为config的文件,而不是config.py。然而,文件内容没有改变,现有的MaildropHost配置文件内容仍然有效。


MaildropHost变更日志

2.3 (2009-10-09)

2.2 (2009-05-29)

2.1 (2008-11-03)

  • 为Zope 2.11进行兼容性工作

2.0 (2008-11-01)

  • 将MaildropHost作为egg发布

  • 根据Zope自身设定的标准清理Python模块序言。

  • 清理Subversion关键字标记以使用Id标签

  • 主要测试重构和简化

  • MaildropHost类现在被标记为实现IMailHost,就像标准的Zope 2 MailHost。

  • 现在可以在ZMI的“编辑”选项卡中为每个MaildropHost实例选择配置文件。默认情况下,下拉菜单将显示MaildropHost目录中的文件“config”。网站管理员可以使用Zope实例配置文件zope.conf添加更多路径。请参阅README.txt了解详情。

  • 清理了帮助系统内容,并在可能的情况下使用“MaildropHost”而不是“Maildrop Host”。

以前版本

参见HISTORY.txt


下载

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源分布

Products.MaildropHost-2.3.tar.gz (40.8 kB 查看哈希值)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面