libcurl imaps doesn't returns Header Field “Content-Transfer-Encoding” or “Content-Type”

懵懂的女人 提交于 2019-12-11 18:26:27

问题


I have been trying to detect encoding of an email manually, to see whether the email that i have just fetched needed to be base64 decoded or not, but that wasn't a complete solution.

So now I'm trying to download the headers (fields) of an email first, check them what kind of email it is and then proceed to decoding it with base64 in case the header says that it is a base64 encoded email or just skip it if it is a plain text or HTML text.

The problem is that the libcurl commands for fetching these fields doesn't really work, most of the time the "Content-Type" returns just an empty string or says that it is a multipart/alternative but when i check the email manually it is just a plain text which obviously doesn't need to be decoded.??

"Content-Type" field multipart/alternative usually have different parts like text, html, base64 encoded text, attachments etc.

In cases of multipart/alternative the "Content-Transfer-Encoding" field doesn't return anything at all, and this is the most important header field for me to know what it contains.

My imaps request to Gmail account looks like this:

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)");

Which returns this:

Subject: my subject From: myname Content-Type: multipart/alternative; boundary="001a114930a049c6da05dskdls9"

As you can see it doesn't returns the "Content-Transfer-Encoding" field.

This email actually contains the word "Yup" only, so it is a plain text and no attachments, when checked by clicking on the "show original" message in browser.

Sys info: Linux, C , libcurl, gmail

来源:https://stackoverflow.com/questions/45765611/libcurl-imaps-doesnt-returns-header-field-content-transfer-encoding-or-conte

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!