前些天有读者提出需要在iPhone中开发Email的程序。在iPhone的SDK中除了使用mailto的方式发送邮件之外暂时还没有其他更好的方法。

这里介绍两个基于Objective-C的Open Source的Email代码,理论上来说经过微小的修改就可以用于iPhone中,不过需要注意的是请注意这两个代码的授权方式。

 

Pantomime 是一个用于开发邮件程序的完整框架,而且有相当多的基于Mac的桌面程序都使用了这个框架。在功能方面,支持MIME编码和解码,完全支持IMAP和POP3协议,并支持本地邮件发送或使用远程SMTP发送,支持SSL/TLS安全发送及接收邮件机制。

它的大部分代码都是使用Objective-C写成,只有一小部分需要性能的代码用c写成,另外它还使用了一点eml 代码。它既可以用于Mac OSX,还可以在GNUStep下编译。

Pantomime的使用非常简单,而且下载包中也提供了完善的使用例子,仅仅使用很短的代码就可以实现邮件的接收、发送以及密码验证等功能。

如果你希望开发一个完整的电子邮件程序,相信Pantomime是最好的选择。下载地址在这里 ,版本为1.2.0pre3。

另外一个代码的名字叫做MailCore Framework ,由Matt Ronge开发(感觉做Mac开发的人叫Matt的好多……)。同样非常好用,也自带了两个简单清楚的例子。

用MailCore Framework发送邮件非常简单:

 

  1. CTCoreMessage * testMsg = [ [ CTCoreMessage alloc ] init ] ;
  2. [ testMsg setTo : [ NSSet setWithObject : [ CTCoreAddress addressWithName : @ "Monkey" email : @ "monkey@monkey.com" ] ] ] ;
  3. [ testMsg setFrom : [ NSSet setWithObject : [ CTCoreAddress addressWithName : @ "Someone" email : @ "test@someone.com" ] ] ] ;
  4. [ testMsg setBody : @ "This is a test message!" ] ;
  5. [ testMsg setSubject : @ "This is a subject" ] ;

设置好之后就可以直接发送:

  1. CTSMTPConnection sendMessage : testMsg server : @ "mail.test.com" username : @ "test" password : @ "test" port : 25 useTLS : YES shouldAuth : YES ] ;
  2. [ testMsg release ] ;

需要注意的是MailCore并不支持多线程,另外MailCore将所有信息都保存在内存中,因此需要开发者自己手写保存的代码了。不过虽然如此,它还是一个非常简单易用的邮件接收发送代码,建议读者下来看看。

MailCore的下载地址在这里 ,其中包括了文档和例子。