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的在這裡
,其中包括了文檔和例子。