使用 C/C++ 解析电子邮件标头字段

发布于 2024-10-17 02:11:19 字数 175 浏览 4 评论 0原文

我有一个 C 代码,通过 imap 发出 UID FETCH 1:* (FLAGS BODY[HEADER]) 命令来获取收件箱中所有邮件的标头。由于特殊的身份验证要求,我无法使用标准 imap 库,如 vmime 或 libetpan。我需要根据 RFC 822 解析邮件标头值。我们是否有一些 C/C++ 库/函数可以完成这项工作?

I've a C code where I fetch headers for all mails in the inbox via imap issuing UID FETCH 1:* (FLAGS BODY[HEADER]) command. Due to special authentication requirements I cannot use a standard imap library like vmime or libetpan. I need to parse the mail header values in accordance with RFC 822. Do we have some library/function in C/C++ which will do the job ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迷爱 2024-10-24 02:11:19

模仿效果很好!它还负责处理非标准邮件标头。

Mimetic works great ! it also takes care of non-standard mail headers.

多情癖 2024-10-24 02:11:19

这是一个使用模仿的示例:

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

这就是您所需要的?希望有帮助!

Here is an example using mimetic:

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

This is what you need? Hope it helps!

夏花。依旧 2024-10-24 02:11:19

很久以前,在一个遥远的星系,我使用了 MIME++ 库,现在由 Hunny Software 支持: http: //www.hunnysoft.com/mimepp/

当时效果很好。

A long time ago in a galaxy far, far away, I used the MIME++ library, now supported by Hunny Software: http://www.hunnysoft.com/mimepp/

It worked great at the time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文