跳转到主要内容

mailtoplone的基本包

项目描述

mailtoplone.base

概述

mailtoplone的基本包

作者

Stefan Eletzhofer –

“<stefan dot eletzhofer at inquant de>”

Hans-Peter Locher –

“<hans-peter dot locher at inquant de>”

版权所有 (c) 2007-2008 InQuant GmbH – “http://www.inquant.de

依赖项

额外的egg依赖项

icalendar python-dateutil

内容

内容类型

InBox

提供一个XMLRPCView以访问其drop方法。丢弃一个mailstring(一个包含整个电子邮件(包括信封)的纯文本字符串),将生成一个plone内容类型Email,数据字段将包含mailstring。

Email

包含在数据字段内的mailstring的文件类型内容。注册为IEmail的视图(作为标准视图)显示

  • 标题、发件人、收件人、抄送

  • 正文(优先考虑text/html部分而不是text/plain部分)

  • 附件(下载链接)

适配器

MailDropBox

基本适配器,提供生成Email的drop方法,由丢弃的mailstring生成

BlogMailDropBox

高级适配器,从丢弃的mailstring创建新闻条目。

EventMailDropBox

高级适配器,从丢弃的mailstring中的text/calendar附件创建事件

实用工具

BaseDropBoxFactory

用于查找具有id=key的提供IMailDropBoxMarker的对象。由mailtoplone.contentrules中的deliver操作使用。

ICalEventFactory

接受icalendar字符串,此实用工具从每个VEVENT创建ATEvent。该实现支持关键字参数,将它们传递到invokeFactory。此实现正确导入从plone导出的事件,作为初步方法。它由EventMailDropBox使用。

标记接口

您可以使用这些标记接口(@@manage_interfaces)来标记一个文件夹用于mailtoplone(请记住重新索引标记的对象)。之后可以找到该文件夹并将邮件投递到。

IMailDropBoxMarker(Interface)

“”” 邮箱投递箱标记接口 “””

IBlogMailDropBoxMarker(IMailDropBoxMarker)

“”” 博客邮箱投递箱标记接口 “””

IEventMailDropBoxMarker(IMailDropBoxMarker)

“”” 活动邮箱投递箱标记接口 “””

脚本

dropemail

文件系统 Python 脚本,用于将邮件投递到收件箱(url),指定邮件为文件或使用 stdin

vim: set ft=rst tw=75 nocin nosi ai sw=4 ts=4 expandtab

变更历史

变更日志

0.2.7 (2009-07-22)

  • 使用主题为类型 Email 生成 ID,这样我们就不会受到每个投递箱 1000 封邮件的限制(修复 #7)[hplocher]

0.2.6 (2008-12-02)

  • 修复 setup.py 中的依赖,现在需要 python-dateutil(之前是 dateutil)

  • 修正 propertiestool.xml,不进行清除,只添加 Email 到 typesUseViewActionInListings [hplocher]

  • 有关早期更改,请参阅附带的 CHANGELOG

详细文档

mailtoplone.base

设置测试环境

设置包含 email1、email2 的收件箱

>>> self.setRoles(('Manager',))
>>> self.portal.invokeFactory('InBox', 'inbox')
'inbox'
>>> self.portal.inbox.invokeFactory('Email', 'email1')
'email1'
>>> self.portal.inbox.invokeFactory('Email', 'email3')
'email3'

适配器

让我们测试使用 MailDropBox 适配器的 drop 功能,投递的邮件使用 NameChooser 获取其 ID

>>> from mailtoplone.base.interfaces import IMailDropBox
>>> IMailDropBox(self.portal.inbox).drop("some data")
>>> IMailDropBox(self.portal.inbox).drop("some data")
>>> IMailDropBox(self.portal.inbox).drop("some data")
>>> self.portal.inbox.objectIds()
['email1', 'email3', 'email', 'email-1', 'email-2']

让我们测试创建的电子邮件的一些值

>>> self.portal.inbox.email.title
'email'
>>> self.portal.inbox.email.data
'some data'
>>> self.portal.inbox.email.meta_type
'Email'

Browserview xmlrpcview

让我们测试 xmlrpcview 是否有一个创建收件箱中 Email 的 drop 方法

>>> theview = self.portal.inbox.restrictedTraverse('xmlrpcview')
>>> theview.drop("dropped via view")
>>> self.portal.inbox.objectIds()
['email1', 'email3', 'email', 'email-1', 'email-2', 'email-3']
>>> self.portal.inbox.listFolderContents()[5].data
'dropped via view'

电子邮件标题

我们从主题生成电子邮件对象的标题,否则我们将使用 ID

首先,让我们创建各种简约电子邮件

>>> withsubject = 'subject: withsubject'
>>> withSubject = 'Subject: withSubject'
>>> withbetreff = 'betreff: withbetreff'
>>> withBetreff = 'Betreff: withBetreff'

让我们将这些电子邮件投递到我们的收件箱

>>> theview.drop(withsubject)
>>> self.portal.inbox.listFolderContents()[6].Title()
'withsubject'

>>> theview.drop(withSubject)
>>> self.portal.inbox.listFolderContents()[7].Title()
'withSubject'

>>> theview.drop(withbetreff)
>>> self.portal.inbox.listFolderContents()[8].Title()
'withbetreff'

>>> theview.drop(withBetreff)
>>> self.portal.inbox.listFolderContents()[9].Title()
'withBetreff'

如果我们邮件中有多个主题 / betreff / …,我们取第一个主题

>>> theview.drop('Subject: SUB\nBetreff: BET')
>>> self.portal.inbox.listFolderContents()[10].Title()
'SUB'

我们解码主题标题以进行展示,让我们投递一个编码的主题

>>> theview.drop('Subject: =?ISO-8859-15?Q?=FCld=F6m?=')
>>> self.portal.inbox.listFolderContents()[11].Title() == 'üldöm'
True
vim: set ft=rst tw=75 nocin nosi ai sw=4 ts=4 expandtab:

贡献者

Hans-Peter Locher, InQuant GmbH

Stefan Eletzhofer, InQuant GmbH

下载

项目详情


下载文件

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

源分布

mailtoplone.base-0.2.7.zip (138.5 kB 查看哈希值)

上传时间

由以下机构支持