Mailcore 2 не может получить доступ к сообщениям Gmail, кроме папки "Входящие"

С Mailcore 2 я могу получить доступ к сообщениям практически всех папок Yahoo, но когда я пытаюсь использовать gmail, он может получить доступ только к сообщениям папки "Входящие". Пожалуйста, кто-нибудь знает, что происходит не так.

Это мой код

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..
         }];

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);
}];
Другие вопросы по тегам