Ios 如何在mailcore2中获取电子邮件正文

Ios 如何在mailcore2中获取电子邮件正文,ios,objective-c,email,imap,mailcore,Ios,Objective C,Email,Imap,Mailcore,我正在尝试从迁移到。在以前的mailcore中,获取主体结构就像[msg fetchBodyStructure]一样简单,其中msg是一个对象 使用mailcore2,事情似乎更加复杂。在获取消息正文的文档中,我们有: MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentByUIDOperationWithFolder:@"INBOX"

我正在尝试从迁移到。在以前的mailcore中,获取主体结构就像
[msg fetchBodyStructure]
一样简单,其中msg是一个对象

使用mailcore2,事情似乎更加复杂。在获取消息正文的文档中,我们有:

MCOIMAPFetchContentOperation * op = 
    [session fetchMessageAttachmentByUIDOperationWithFolder:@"INBOX"
                                                        uid:[message uid]
                                                     partID:"1.2"
                                                   encoding:[part encoding]];
 [op start:^(NSError * error, NSData * partData) {
 }];
我完全不知道这个
1.2
应该指什么。作者将用户引荐到,但没有一个人对上述问题有一个直截了当的答案


有人能给我看一个获取整个邮件正文的简单代码示例吗?

您需要RFC 3501,第6.4.5部分-Fetch命令,特别是
body[]
。 该数字表示消息MIME结构的段

例如,如果您的消息mime结构如下所示,则使用一种常见格式:

multipart/alternative
|- text/plain
\- text/html
零件和子零件按如下方式递归编号:

multipart/alternative (top-level)
|- text/plain (Part 1)
\- text/html (Part 2)
对于更复杂的格式,例如,带有附件:

multipart/mixed (top-level)
|- multipart/alternative (Part 1)
|  |- text/plain (Part 1.1)
|  \- text/html (Part 1.2)
\- image/jpeg (Part 2)

如果您想要完整的消息,部件号通常为空。或者,如果您想要完整的信息,但不需要标题,您可以使用
文本

我不知道人们为什么会把事情复杂化: 以下是使用MailCore2获取电子邮件正文的方法:

MCOIMAPSession *session = [[MCOIMAPSession alloc] init];
    [session setHostname:@"imap.gmail.com"];
    [session setPort:993];
    [session setUsername:[UICKeyChainStore stringForKey:@"username"]];
    [session setPassword:[UICKeyChainStore stringForKey:@"password"]];
    [session setConnectionType:MCOConnectionTypeTLS];
    MCOIMAPFetchContentOperation *operation = [session fetchMessageByUIDOperationWithFolder:@"INBOX" uid:message.uid];

    [operation start:^(NSError *error, NSData *data) {
        MCOMessageParser *messageParser = [[MCOMessageParser alloc] initWithData:data];

        NSString *msgHTMLBody = [messageParser htmlBodyRendering];
        [webView loadHTMLString:msgHTMLBody baseURL:nil];
    }];

杰出的有没有一种方法来获取电子邮件摘要或类似于正文前三行的东西,将其显示在邮箱中,而不必取出整个电子邮件?我不能对邮件进行发言,但从协议级别来看,一旦您获得了体结构< /代码>,那么您就可以识别您认为哪个部分是主体,如果您的库支持,您可以使用部分获取来获取第一个kb左右<协议中的代码>正文[]
。我不确定这是否得到广泛支持。问题是关于使用MailCore api。这个答案与我无关。你可能会认为这段代码会出现在“入门”指南中。谢谢。最后一行应该是[webView.mainFrame loadHTMLString:msgHTMLBody baseURL:nil]将正确答案更改为Gal Blank的答案如何?