2015-10-12 2 views
5

Я попытался выборками в bodyHTML используя следующий кодПроблемы При получении bodyHTML использования PartID в Mailcore2

MCOIMAPFetchContentOperation * op = [imapsession  fetchMessageAttachmentOperationWithFolder:folderName uid:uid partID:partId encoding:MCOEncoding8Bit 

И я получил bodyHTML с некоторым нежелательным дополнительным кодом. Html я получил для одного из почты

<div style="padding-bottom: 20px;"></div><div>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org= 
<br/>/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt; 
<br/>&lt;html xmlns=3D"http://www.w3.org/1999/xhtml"&gt; 
<br/>&lt;head&gt; 
<br/>&lt;meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8" /&gt; 
<br/>&lt;meta name=3D"viewport" content=3D"width=3Ddevice-width" /&gt; 
<br/>&lt;meta http-equiv=3D"X-UA-Compatible" content=3D"IE=3Dedge" /&gt; 
<br/>&lt;/head&gt; 
<br/>&lt;body style=3D"-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; = 
<br/>background: #EEEEEE; color: #222222; font-family: 'Open Sans', Arial, sans-= 
<br/>serif; font-size: 14px; font-weight: normal; line-height: 22px; margin: 0; = 
<br/>min-width: 100%; padding: 0; text-align: left; width: 100% !important" bgco= 
<br/>lor=3D"#EEEEEE"&gt;&lt;style type=3D"text/css"&gt; 
<br/>body { 
<br/>width: 100% !important; min-width: 100%; -webkit-text-size-adjust: 100%; -m= 
<br/>s-text-size-adjust: 100%; margin: 0; padding: 0; 
<br/>} 
<br/>.ExternalClass { 
<br/>width: 100%; 
<br/>} 
<br/>.ExternalClass { 
<br/>line-height: 100%; 
<br/>} 
<br/>#backgroundTable { 
<br/>margin: 0; padding: 0; width: 100% !important; line-height: 100% !important= 
<br/>; 
<br/>} 
<br/>img { 
<br/>outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; widt= 
<br/>h: auto; max-width: 100%; float: left; clear: both; display: block; 
<br/>} 
<br/>body { 
<br/>color: #222222; font-family: "Open Sans", Arial, sans-serif; font-weight: n= 
<br/>ormal; padding: 0; margin: 0; text-align: left; line-height: 1.3; 
<br/>} 
<br/>body { 
<br/>font-size: 14px; line-height: 22px; 
<br/>} 
<br/>a:hover { 
<br/>color: #222222 !important; 
<br/>} 

И я не могу сделать его на веб-странице. Но когда я попытался извлечение тела, используя следующий метод

MCOIMAPFetchContentOperation * opr = [imapsession fetchMessageOperationWithFolder:folderName uid:uid urgent:YES]; 

Я получил правильный HTML тела и был в состоянии сделать его на WebView .The HTML я получил для приведенной выше методы: -

<div style="padding-bottom: 20px;"></div><div><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content= 
"text/html; charset=utf-8" /> 
<meta name="viewport" content="width=device-width" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
<title></title> 
</head> 
<body style= 
"-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; background: #EEEEEE; color: #222222; font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 22px; margin: 0; min-width: 100%; padding: 0; text-align: left; width: 100% !important" 
bgcolor="#EEEEEE"> 
<style type="text/css"> 
/*<![CDATA[*/ 
body { 
width: 100% !important; min-width: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; margin: 0; padding: 0; 
} 
.ExternalClass { 
width: 100%; 
} 
.ExternalClass { 
line-height: 100%; 
} 
#backgroundTable { 
margin: 0; padding: 0; width: 100% !important; line-height: 100% !important; 
} 
img { 
outline: none; text-decoration: none; -ms-interpolation-mode: bicubic; width: auto; max-width: 100%; float: left; clear: both; display: block; 
} 
body { 
color: #222222; font-family: "Open Sans", Arial, sans-serif; font-weight: normal; padding: 0; margin: 0; text-align: left; line-height: 1.3; 
} 
body { 
font-size: 14px; line-height: 22px; 
} 
a:hover { 
color: #222222 !important; 
} 

Есть ли какой-либо парсер или какой-либо другой способ получить тело html. Поскольку мне нужно использовать метод using partID для извлечения bodyHTML.

+0

Что такое тип содержимого детали? –

+1

Тип Mime - «текст/HTML» –

ответ

5

Проблема была при получении сообщения с использованием части, он всегда использует MCOEncoding8Bit для кодирования, вместо этого мы должны предоставить кодировку, которую мы получаем при получении сообщения, как показано ниже.

for(MCOAbstractPart *abstractPart in multiAbstractPart.parts) 
    { 
MCOIMAPPart *part = (MCOIMAPPart *)abstractPart; 
MCOIMAPFetchContentOperation * op = [imapsession  fetchMessageAttachmentOperationWithFolder:folderName uid:uid partID:partId encoding:part.encoding]; 
} 
+1

Приятно слышать, что вы решаете проблему! –

Смежные вопросы