libcurl imaps不返回标题字段“Content-Transfer-Encoding”或“Content-Type”

我一直在尝试手动检测电子邮件的编码,以查看我刚刚提取的电子邮件是否需要进行base64解码,但这不是一个完整的解决方案。

所以现在我首先尝试下载电子邮件的标题(字段),检查它们是什么类型的电子邮件然后继续用base64解码它,以防标题说它是base64编码的电子邮件或者只是跳过它如果是纯文本或HTML文本。

问题是用于获取这些字段的libcurl命令实际上不起作用,大多数情况下“Content-Type”只返回一个空字符串或者说它是一个多部分/替代,但当我手动检查电子邮件时它是只是一个明显不需要解码的纯文本。

“Content-Type”字段multipart / alternative通常有不同的部分,如text,html,base64编码文本,附件等。

在multipart / alternative的情况下, “Content-Transfer-Encoding”字段根本不返回任何内容,这是我最重要的标题字段,可以让我知道它包含的内容。

我对Gmail帐户的imaps请求如下所示:

curl_easy_setopt(curl, CURLOPT_URL,"imaps://imap.gmail.com:993/INBOX;UID=33;SECTION=HEADER.FIELDS%%20(Content-Transfer-Encoding%%20Subject%%20From%%20Content-Type)"); 

哪个返回:

主题:我的主题来自:myname内容类型:multipart / alternative; 边界= “001a114930a049c6da05dskdls9”

如您所见,它不会返回“Content-Transfer-Encoding”字段。

此电子邮件实际上仅包含单词“Yup”,因此当通过单击浏览器中的“显示原始”消息进行检查时,它是纯文本而无附件。

系统信息:Linux,C,libcurl,gmail