我正在为一个问题而战,也许你可以帮我一把。我正在处理一个 POP3 电子邮件帐户,我需要它来解析电子邮件并获取其信息。我正在使用 libCurl 来阅读邮件,我目前正在使用 mimetic 库来分解电子邮件中的每个部分。 事实上,我可以很容易地为电子邮件的“标题”做这件事,但我不知道如何为正文做这件事。这是我现在的代码:
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??
}
这是它打印的内容: -- 如您所见,使用此工具很容易进入标题,但深入研究正文对象属性,我没有任何可用于获取附件的“字段”方法例如,这是我需要的。
无论如何,我将感谢你们的任何帮助!我被困在这里了!
最佳答案
主体类重载了运算符<<。 您可以使用以下方法获取 body 的字符串表示形式:
std::stringstream s;
s << pMe->body();
std::string bodyStr = s.str();
关于c++ - 如何使用模拟库解析 MIME 消息的正文部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19907491/