c++ - 如何使用模拟库解析 MIME 消息的正文部分?

标签 c++ pop3

我正在为一个问题而战,也许你可以帮我一把。我正在处理一个 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??
}

这是它打印的内容: enter image description here -- 如您所见,使用此工具很容易进入标题,但深入研究正文对象属性,我没有任何可用于获取附件的“字段”方法例如,这是我需要的。

无论如何,我将感谢你们的任何帮助!我被困在这里了!

最佳答案

主体类重载了运算符<<。 您可以使用以下方法获取 body 的字符串表示形式:

 std::stringstream s;
 s << pMe->body();
 std::string bodyStr = s.str();

关于c++ - 如何使用模拟库解析 MIME 消息的正文部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19907491/

相关文章:

c# imap/pop3 邮件服务器

C# SslStream 在第二次请求时抛出 IOException

imap - 什么是用于开发的好的邮件服务器?

c++ - Opencv 如何在应用 cv::findContours 和 cv::drawContour 后检测矩形的 4 个角

email - 如何检查电子邮件是否已使用 POP3/SMTP 阅读?

c++调试ofstream fail()状态?

c++ - c++中的编译单元是如何定义的?

PHP imap_open 失败,但 OpenSSL 连接

c++ - c++中的替换密码

c++ - 我们可以在代码中作弊并在 NULL 内存位置写入一些东西并避免在运行时出现段错误吗?