我想要消化从PHP脚本发回的C++中的多部分响应.有人知道一个非常轻量级的MIME解析器可以为我做这个吗?
我知道这可能太少,太晚了,但我有类似的需求.我想要一个只对MIME进行编码和解码的mime解析器.为了完整性和谷歌能力,我想我应该把我的发现放在这里.请记住,我对发送和接收邮件不感兴趣,只是编码和解码MIME.以下是我为C++ MIME研究的库:
http://www.vmime.org/ - 看起来太多了.包含pop,SMTP,tls,IMAP,可以删除它.Posix和windows.
http://codesink.org/mimetic_mime_library.html - 看起来很有前途.非常好的api用于阅读和创建消息.走了这个.不太重.不得不"修理"2件事.首先对于multipart,代码只检查字符串"multipart"并且不识别"multipart/mixed"并且没有写出部分.其次,我不得不破解mimeentity写代码.它只是写出了std :: deque字段,因为这些字符串似乎按字母顺序排列.这是问题,因为MIME版本必须是写出的第一个字段.所以我修好了.我还必须添加对Content-Length的支持.
http://www.mozilla.org/mailnews/arch/libmime-description.html - 很难找到这个.不得不下载整个包.mailnews \哑剧\型钢
http://www.example-code.com/vcpp/smime.asp - 没有考虑因为它没有源代码并且是特定于Windows的.
http://www.scalingweb.com/mime_parser.php - 没有考虑因为它取决于作者的其他流库.
http://httpd.apache.org/docs/2.2/mod/mod_mime.html - 无法找到此C实现.
虽然我不得不添加一些东西,但我选择了Mimetic来满足我的需求.我找到的解析器都没有处理可选字段(Content-Length等).我还需要它来支持多个平台(Windows,Linux等).
不要在这里嘟嘟我自己的号角,但GMime是一个用C编写的非常完整的MIME解析器,可以处理Content-Length头.它还可以轻松处理DOS和UNIX行结束,处理破坏的标题字符集编码,不需要你将整个消息读入RAM,支持PGP/MIME等.它还有一套非常全面的单元测试,我用来防止任何回归.
人们已经在Windows上构建它已经有一段时间了(在cygwin和/或mingw32 afaik下),但过去一周左右我一直花时间通过设置Visual C++项目/解决方案文件使Windows成为一流的优先级并确保一切都建立.
我想发布即使你已经发现了一个MIME解析器,只是因为其他可能有类似问题的人可能会看到另一个选项,如果上述解决方案不符合他们的需求.