2011-02-11 2 views
2

У меня есть код C, где я получаю заголовки для всех писем во входящей папке через imap, выдавая команду UID FETCH 1: * (FLAGS BODY [HEADER]). Из-за специальных требований к аутентификации я не могу использовать стандартную библиотеку imap, например, vmime или libetpan. Мне нужно проанализировать значения заголовка почты в соответствии с RFC 822. Есть ли у нас библиотека/функция в C/C++, которая будет выполнять эту работу?Разбор полей заголовков электронной почты с использованием C/C++

ответ

3

Mimetic works great! он также заботится о нестандартных почтовых заголовках.

1

Уже давно в галактике далеко, далеко, я мим ++ библиотеки, теперь поддерживается Hunny Software: http://www.hunnysoft.com/mimepp/

Он работал большим в то время.

+0

Платное программное обеспечение, не может его использовать! Найдено решение с открытым исходным кодом http://codesink.org/mimetic_mime_library.html#snippets. попробовать сейчас – Nands

1

Вот пример использования миметик:

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

    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;  
} 

Это то, что вам нужно? Надеюсь, поможет!