2013-08-12 9 views
1

Mailcore 2로 야후의 거의 모든 폴더의 메시지에 액세스 할 수 있지만 Gmail을 시도 할 때받은 편지함 폴더 메시지에만 액세스 할 수 있습니다. 아무도 잘 모르겠습니다. Mailcore 2는받은 편지함 폴더를 제외한 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.. 
     }]; 
+0

해결했다. https://github.com/MailCore/mailcore2/issues/303 – BhushanVU

답변

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:@"[email protected]"]; 
[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); 
}]; 
+0

나는 그것을 알아 냈다. 왜냐하면 나는 단지 폴더 이름을 보내고 있었지만 메시지를 가져 오기 위해서는 경로를 제공해야했기 때문이었다. 예 : [Gmail] – BhushanVU