Mailcore 2 无法访问除收件箱文件夹以外的 gmail 邮件
Posted
技术标签:
【中文标题】Mailcore 2 无法访问除收件箱文件夹以外的 gmail 邮件【英文标题】:Mailcore 2 can not access gmail messages except Inbox folder 【发布时间】:2013-08-13 14:24:29 【问题描述】:使用 Mailcore 2,我可以访问 Yahoo 几乎所有文件夹的消息,但是当我尝试使用 gmail 时,它只能访问 Inbox 文件夹消息。请任何人知道出了什么问题。
这是我的代码
if ([dict count] > 0)
myAccountsession = [[MCOIMAPSession alloc] init];
[myAccountsession setHostname:[dict objectForKey:@"incomingserver"]];
[myAccountsession setPort:993];
[myAccountsession setUsername:[dict objectForKey:@"email"]];
[myAccountsession setPassword:[dict objectForKey:@"password"]];
[myAccountsession setConnectionType:MCOConnectionTypeTLS];
MCOIMAPMessagesRequestKind requestKind = (MCOIMAPMessagesRequestKind)
(MCOIMAPMessagesRequestKindHeaders | MCOIMAPMessagesRequestKindStructure |
MCOIMAPMessagesRequestKindInternalDate | MCOIMAPMessagesRequestKindHeaderSubject |
MCOIMAPMessagesRequestKindFlags);
NSString *folder = foldernamestring;
NSLog(@"foldername to fetch mails %@",folder);
MCOIMAPFolderInfoOperation *inboxFolderInfo = [myAccountsession folderInfoOperation:foldernamestring];
[inboxFolderInfo start:^(NSError *error, MCOIMAPFolderInfo *info)
//access messages in folder..
];
【问题讨论】:
已解决。 github.com/MailCore/mailcore2/issues/303 【参考方案1】:您没有使用正确的操作来检索消息列表。您正在使用的操作 (MCOIMAPFolderInfoOperation) 仅检索指定文件夹的元数据信息。您应该使用 MCOIMAPFetchMessagesOperation 而不是此操作,此操作将为您提供特定文件夹的消息列表。有关此操作的更多说明,请参见此处 (http://libmailcore.com/mailcore2/api/Classes/MCOIMAPFetchMessagesOperation.html)。
如何使用此操作检索消息的示例如下:
MCOIMAPSession *session = [[MCOIMAPSession alloc] init];
[session setHostname:@"imap.gmail.com"];
[session setPort:993];
[session setUsername:@"ADDRESS@gmail.com"];
[session setPassword:@"123456"];
[session setConnectionType:MCOConnectionTypeTLS];
MCOIMAPMessagesRequestKind requestKind = MCOIMAPMessagesRequestKindHeaders;
NSString *folder = @"INBOX";
MCOIndexSet *uids = [MCOIndexSet indexSetWithRange:MCORangeMake(1, UINT64_MAX)];
MCOIMAPFetchMessagesOperation *fetchOperation = [session fetchMessagesByUIDOperationWithFolder:folder requestKind:requestKind uids:uids];
[fetchOperation start:^(NSError * error, NSArray * fetchedMessages, MCOIndexSet * vanishedMessages)
//We've finished downloading the messages!
//Let's check if there was an error:
if(error)
NSLog(@"Error downloading message headers:%@", error);
//And, let's print out the messages...
NSLog(@"The post man delivereth:%@", fetchedMessages);
];
【讨论】:
我想通了,这是因为我只发送文件夹名称,但要检索消息,您必须提供路径。例如与 [Gmail]以上是关于Mailcore 2 无法访问除收件箱文件夹以外的 gmail 邮件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 mailcore 框架或任何框架从 swift/objective c 中的电子邮件代理中获取收件箱?
无法从收件箱以外的任何文件夹中检索 gmail 邮件(Python3 问题)
使用 mailcore (iOS),我如何从特定电子邮件地址获取所有电子邮件?