前些天有读者提出需要在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发送邮件非常简单:
-
CTCoreMessage *testMsg = [ [CTCoreMessage alloc ] init ];
-
[testMsg setTo : [ NSSet setWithObject : [CTCoreAddress addressWithName :@ "Monkey " email :@ "monkey@monkey.com " ] ] ];
-
[testMsg setFrom : [ NSSet setWithObject : [CTCoreAddress addressWithName :@ "Someone " email :@ "test@someone.com " ] ] ];
-
[testMsg setBody :@ "This is a test message !" ];
-
[testMsg setSubject :@ "This is a subject " ];
设置好之后就可以直接发送:
-
CTSMTPConnection sendMessage :testMsg server :@ "mail. test.com " username :@ "test " password :@ "test " port : 25 useTLS : YES shouldAuth : YES ];
-
[testMsg release ];
需要注意的是MailCore并不支持多线程,另外MailCore将所有信息都保存在内存中,因此需要开发者自己手写保存的代码了。不过虽然如此,它还是一个非常简单易用的邮件接收发送代码,建议读者下来看看。
MailCore的下载地址在这里,其中包括了文档和例子。
转自:http://www.cocoachina.com/b/?p=259
参考:http://stackoverflow.com/questions/740939/open-source-cocoa-cocoa-touch-pop3-smtp-library