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

Posted

技术标签:

【中文标题】使用 mailcore (iOS),我如何从特定电子邮件地址获取所有电子邮件?【英文标题】:Using mailcore (iOS), how could I get all emails from a specific email address? 【发布时间】:2014-07-17 22:53:09 【问题描述】:

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

];

所以,我真的需要一些方法来获取特定人的所有电子邮件。这可能吗?如果是这样,我该怎么做? 谢谢!

【问题讨论】:

试试 searchOperation。 【参考方案1】:

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

获取以fromAddress为搜索结果的messageUid列表,然后获取这些messageUid列表的邮件。

【讨论】:

以上是关于使用 mailcore (iOS),我如何从特定电子邮件地址获取所有电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

iOS MAilCore:如何下载邮件附件并在 web 视图中显示?

使用 mailcore2 在 gmail 帐户中创建标签

Mailcore 2 错误“此服务器的证书无效。” iOS

如何使用 MailCore 到 Sample iPhone 应用程序从邮件中检索 .xml 扩展附件

ios使用mailcore发送电子邮件不起作用

iOS IMAP 同步与 MailCore 最佳实践