MailCore 2:简介

MailCore 2 提供了一个简单且异步的 Objective-C API,用于处理电子邮件协议 IMAPPOPSMTP。该 API 从底层进行了重新设计,其特点包括:

Build Status

安装

为 iOS/OSX 构建

阅读 iOS/OSX 构建说明

为 Android 构建

阅读 Android 构建说明

为 Windows 构建

阅读 Windows 构建说明

为 Linux 构建

阅读 Linux 构建说明

基本 IMAP 用法

从概念上讲,使用 MailCore 2 比原始 MailCore 稍微复杂一些。MailCore 2 中的所有获取请求都是通过队列异步进行的。这意味着什么呢?让我们看一个简单的例子

  let session = MCOIMAPSession()
  
  session.hostname       = "imap.gmail.com"
  session.port           = 993
  session.username       = "ADDRESS@gmail.com"
  session.password       = "123456"
  session.connectionType = .TLS
  
  let folder = "INBOX"
  let uids   = MCOIndexSet(range: MCORange(location: 1, length: UInt64.max))
  
  if let fetchOperation = session.fetchMessagesOperation(withFolder: folder, requestKind: .headers, uids: uids) {
    fetchOperation.start { error, fetchedMessages, vanishedMessages in
      // We've finished downloading the messages!
      
      // Let's check if there was an error
      if let error = error {
        print("Error downloading message headers: \(error.localizedDescription)")
      }
      
      // And, let's print out the messages:
      print("The post man delivereth: \(fetchedMessages.debugDescription)")
    }
  }

(您也可以阅读 Objective-C 版本

在这个示例中,我们从 IMAP 服务器检索并打印了电子邮件标头列表。为了执行获取操作,我们使用我们的参数(稍后会详细介绍)从 MCOIMAPSession 实例请求一个异步操作对象。当我们调用 start 方法时,此操作对象能够发起与 Gmail 的连接。现在,事情变得有点棘手了。我们使用一个代码块调用 start 函数,该代码块在获取操作完成时在主线程上执行。从 IMAP 实际获取操作是在后台线程中完成的,这使得您的 UI 和其他处理可以自由使用主线程

文档

许可

MailCore 2 基于 BSD 许可。

MailCore 支持者