http://www.cocoachina.com/macdev/cocoa/2009/0611/255.html
前些天有读者提出需要在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的下载地址在这里
,其中包括了文档和例子。