1

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

1 に答える 1

0

メッセージのリストを取得するための正しい操作を使用していません。使用している操作 (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);
}];
于 2013-10-10T18:08:30.220 に答える