2013-11-11 7 views
1

Я боюсь с проблемой здесь, и, может быть, вы можете дать мне руку. Я обрабатываю учетную запись электронной почты POP3, которая мне нужна для разбора электронных писем и получения информации. Я использовал libCurl для чтения писем, и в настоящее время я использую mimetic библиотека для расчленения каждой части письма внутри. Дело в том, что я мог сделать это легко для «заголовка» письма, но я не знаю, как это сделать для тела. Это мой код прямо сейчас:Как разобрать части тела сообщения MIME, используя миметическую библиотеку?

void MailServer::PrintMimeStructure(MimeEntity* pMe) 
{ 
    Header& h = pMe->header(); 

    Body& b = pMe->body(); //i don't know how to access here! 
    ContentType ct = h.contentType(); 
    ContentId ci = h.contentId(); 
    ContentDisposition cd = h.contentDisposition(); 
    if(h.hasField("subject")) 
     cout << "<subject>" << h.field("subject").value() << "</subject>" << 
     endl; 

    if(h.hasField("from")) 
     cout << "<from>" << h.field("from").value() << "</from>" << 
     endl; 
    if(h.hasField("to")) 
     cout << "<to>" << h.field("to").value() << "</to>" << 
     endl; 
    if(h.hasField("message-id")) 
     cout << "<message-id>" << h.field("message-id").value() << "</message-id>" << 
     endl; 

    if(h.hasField("date")) 
     cout << "<date>" << h.field("date").value() << "</date>" << 
     endl; 

    //WHAT ABOUT THE BODY?? 
} 

и это то, что он печатает: enter image description here - как вы можете видеть, очень легко попасть в заголовок, используя этот инструмент, но копаться в объект тела свойства, у меня нет никакого «поле» метод полезен для получения вложений, например, это то, что мне нужно.

В любом случае, я буду благодарен за любую помощь от вас, ребята! я застрял здесь!

+0

Что вам нужно, чтобы узнать, как использовать Миметическая для декодирования нескольких частей сообщения MIME. Есть ли у него документация? –

+0

Да, я видел это, но только показывает пример, чтобы сделать эту задачу для заголовка, как я сделал здесь, но немного плохой для тела. Поверь мне, я действительно пытался найти что-то, но там ничего нет. –

+0

Я принимаю любое предложение для другой полезной библиотеки для этой задачи. –

ответ

1

Тип кузова перегружен оператором < <. Вы можете получить строковое представление тела следующим способом:

std::stringstream s; 
s << pMe->body(); 
std::string bodyStr = s.str(); 
Смежные вопросы