项目地址:http://libmailcore.com/
MailCore 是什么?
MailCore是一个Mac和iOS下的email库。使用它能轻易发送email,并隐藏了MIME的具体细节。只需要调用一个方法即可进行邮件发送。列出IMAP服务器上的邮件要复杂一些,但MailCore也能节省大量的工作,你可以使用封装良好的Messages、Foleder和Accounts对象。
邮件发送示例
以下代码显示如何使用MailCore发送邮件。
CTCoreMessage *msg = [[CTCoreMessage alloc] init];
CTCoreAddress *toAddress = [CTCoreAddressaddressWithName:@"Monkey"
email:@"[email protected]"];
[msg setTo:[NSSet setWithObject:toAddress]];
[msg setBody:@"This is a test message!"];
NSError *error;
BOOL success = [CTSMTPConnection sendMessage:msgserver:@"mail.test.com"
username:@"test"password:@"test" port:25
useTLS:YESuseAuth:YES error:&error];
在 GitHub上可以获得 MailCoreExample.m 的源代码。
下载MailCore
最好的方法是直接从github的MailCore项目克隆一份副本。当前,主分支仍处于改进中,我们推荐从主分支下载。最终的稳定版本会是1.0,但当前版本仍然是主分支。
git clone https://github.com/mronge/MailCore.git cd MailCore/
git submodule update --init
把MailCore加到你的 iOS 项目
把MailCore 加到你的 Mac 项目
迁移至版本 1.0
最新版本的MailCore不再向下兼容。我试图向下兼容,但真的太难了,sorry:(
最大的改变是不再使用异常,而用方法返回值来表示是否成功(返回BOOL值或的对象)。如果有错误发生,用-(NSError*)lastError方法去检测该对象。
以下列出大部分改变:
q方法-(int)fetchBody变为-(BOOL)fetchBodyStructure
q方法messageObjectsFromIndex:toIndex:和messageListWithFetchAttributes:被删除。使用方法messagesFromSequenceNumber:to:withFetchAttributes:和messagesFromUID:to:withFetchAttributes:代替它们。具体看CTCoreFolder.m的头文件。
qNSException不再使用。用NSError代替。
q当邮件未下载或邮件中没有相应的内容时,CTCoreMessage对象的to、from、sender、bcc、cc、subject属性为nil。
q邮件的UIDs不再是NSString,而是NSUInteger。
q-(BOOL)isUIDValid:(NSString*)uid被删除,你需要手动方式检测你的uid有效性。
新手入门: Getting Started Guide , API文档: API docs.