我在这里遇到问题,也许你可以帮我一把。我正在处理一个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??
}
这就是它打印的内容: - 正如您所看到的,使用此工具很容易进入标题,但深入了解正文对象属性,我没有任何“field”方法可用于获取附件例如,这就是我所需要的。
无论如何,我会感谢你们的任何帮助!我被困在这里!
答案 0 :(得分:1)
Body类重载了运算符&lt;&lt;。 您可以使用以下方法获取正文的字符串表示:
std::stringstream s;
s << pMe->body();
std::string bodyStr = s.str();