基本上,我有一个应用程序,用户输入他的电子邮件地址和密码,应用程序保存它,然后用户输入朋友的电子邮件地址,我需要该应用程序获取用户的所有收件箱电子邮件朋友是发件人。 起初,我以为我会收到所有电子邮件,然后为朋友提取一些 - 问题是,这需要一段时间。对于有4000封电子邮件的用户,需要十分钟以上。
MCOIMAPSession *session = [[MCOIMAPSession alloc] init];
session.hostname = @"imap.gmail.com";
session.port = 993;
session.username = @"maor.kern@gmail.com";
session.password = @"xxxx";
session.connectionType = MCOConnectionTypeTLS;
MCOIndexSet *uidSet = [MCOIndexSet indexSetWithRange:MCORangeMake(1,UINT64_MAX)];
MCOIMAPMessagesRequestKind requestKind = MCOIMAPMessagesRequestKindFullHeaders;
MCOIMAPFetchMessagesOperation *fetchOp =
[session fetchMessagesByUIDOperationWithFolder:@"INBOX"
requestKind:requestKind
uids:uidSet];
[fetchOp start:^(NSError *err, NSArray *msgs, MCOIndexSet *vanished) {
for (int i = 0; i < [msgs count]; i++) {
MCOIMAPMessage *m = msgs[i];
MCOIMAPFetchContentOperation *operation = [session fetchMessageByUIDOperationWithFolder:@"INBOX" uid:m.uid];
[operation start:^(NSError *error, NSData *data) {
MCOMessageParser *messageParser = [[MCOMessageParser alloc] initWithData:data];
NSString *msgHTMLBody = [messageParser htmlBodyRendering];
NSLog(@"%i", i);
}];
}
}];
所以,我真的需要一些方法来获取特定人的所有电子邮件。这可能吗?如果是这样,我怎么能这样做? 谢谢!
答案 0 :(得分:4)
使用 * +(MCOIMAPSearchExpression *)searchFrom:(NSString )value
获取messageAddress列表,其中fromAddress是搜索结果,然后获取这些messageUid列表的邮件。