mailtoplone的基本包
项目描述
mailtoplone.base
概述
mailtoplone的基本包
依赖项
额外的egg依赖项
icalendar python-dateutil
内容
内容类型
InBox
提供一个XMLRPCView以访问其drop方法。丢弃一个mailstring(一个包含整个电子邮件(包括信封)的纯文本字符串),将生成一个plone内容类型Email,数据字段将包含mailstring。
包含在数据字段内的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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a20c44e67a120a4792f1355589fda0a3b47b4b3a1b4051cd98a8c01dbd8ecc30 |
|
MD5 | ccf24b1e9c99f313502f9d7370653882 |
|
BLAKE2b-256 | 10d0c64371f5e0059ba5374dd3667e97a31fa6b9e1b24b207fa6372d9d6c5f57 |