跳转到主要内容

面向对象的访问IMAP账户的API。

项目描述

gocept.imapapi

本软件包提供了一个面向对象的API来访问IMAP服务器。它被编写来提供一个简单易用且性能良好的API。

关于

gocept.imapapi慕尼黑工业大学赞助,作为一项旨在为大学学生门户MyTum开发集成网络邮件系统的研究合作项目的一部分。该项目还包括其他组件,如gocept.restmailCMFWebmail

该项目最初由gocept gmbh & co. kg开发。

面向对象API

网络邮件项目的一个首要目标是提取底层实用程序,以便其他人可以在我们的努力基础上构建。

这个库旨在提供比内置的imaplib更好的抽象、更面向对象、更“pythonic”的方法。

让我们给您举一个我们觉得好的API的例子

>>> from gocept.imapapi import Account
>>> account = Account('localhost', 10143, 'tim', 'mightywizard')
>>> account.folders.keys()
['INBOX']
>>> account.folders['INBOX'].messages
<Messages object at 0x...>
>>> for message in account.folders['INBOX'].messages.values():
...     repr(message.headers['subject'])
u'Re: your spell from last week'
u'Enlarge your magic wand!'

观察此示例时,会想到的一些方面

  • 基于协议特定性的对象模型

  • 使用原生Python数据结构

  • 尽可能早地解码协议特定数据(参见unicode头信息)

采用这种方法,我们试图使IMAP客户端编程更加简单和方便。

性能

imapapi层试图将通信的数量和大小保持尽可能小,仅在真正需要时检索数据,并重复使用已检索的数据。

例如,正文内容只有在需要时才会下载,甚至在查看正文结构时,我们也会区分元数据和内容。

状态

此包仍在早期开发中,发布用于实验目的,并邀请更广泛的社区加入我们,共同开发一个比Python内置的imaplib更方便的IMAP库。

运行测试

测试预计IMAP服务器将在本地主机:10143上可用。默认的buildout环境为此提供了一个dovecot安装。

由于我们旨在与尽可能多的IMAP服务器兼容,因此您应该能够在此端口上提供任何IMAP服务器,只要配置了一个名为“test”的用户,密码为“bsdf”。

警告:不要在生产系统上运行测试。它们可能会造成混乱。

CHANGES

0.5 (2011-01-31)

  • 添加了Folder.unread_message_count。

  • 添加了一些调试输出,以帮助解决#6830和#7769。

  • 使一些最近引入的日志更实用,并调整了测试。

0.4.1 (2010-11-30)

  • 使测试基础设施以更稳定的顺序加载测试消息。

0.4 (2010-09-24)

  • 添加了过滤标准“已读”(#7263)。

0.3 (2010-08-09)

  • 在IMAP服务器上过滤消息。(#4699)

0.2 (2010-08-04)

  • 有很多变化(请参阅svn日志以获取详细信息)。

0.1 (2008-07-22)

  • 初始版本。

由以下支持

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