使用mailcore(iOS),我该如何获取特定电子邮件地址的所有电子邮件?

3

基本上,我有一个应用程序,用户输入他的电子邮件地址和密码,应用程序保存它,然后用户输入朋友的电子邮件地址,我需要应用程序获取所有收件箱邮件,其中朋友是发件人。 起初,我想获取所有电子邮件,然后提取朋友的电子邮件 - 问题是,这需要大量时间。 对于一个有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);
        }];
    }

}];

所以,我真的需要一种方法来获取特定人的所有电子邮件。这可能吗?如果可以,我该如何做到这一点? 谢谢!


1
尝试使用searchOperation。 - Dinh Viêt Hoà
1个回答

4

使用*+(MCOIMAPSearchExpression *)searchFrom:(NSString )value

获取发件人地址为搜索结果的邮件UID列表,然后获取这些邮件UID列表的邮件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接