Gmail 中的 C++ imap-utf7 实现

C++ imap-utf7 implementation in gmail

我正在尝试解码 GMails 发送的文本,应该是 utf7-imap(实际上,如果我没记错的话,utf8 编码在 utf7 中?)

我已阅读:https://en.wikipedia.org/wiki/UTF-7 我正在使用:https://github.com/skeeto/utf-7 to parse the (for example) the text - and mimetic (https://github.com/tat/mimetic) 来解析发送的原始电子邮件文本。

对应的header(本例中的主题)是:

Subject: =?UTF-8?B?15TXldeT16LXlCDXotecINeQ15kg15TXoteR16jXqiDXqtep15zXlQ==?=
 =?UTF-8?B?150g16rXp9eV16TXqteZINeR16rXm9eg15nXqiDXnNep15vXmdeo15nXnQ==?=

评论中提到的编码,仅针对内容(body)。 Headers 应该只使用 ASCII,但某些电子邮件客户端确实会发送某种 8 位编码(ISO-8859-?)。我描述的消息不是这种情况。

我想我还缺少其他东西 - 我在哪里可以找到关于这个主题的文档?

我正在寻找C或C++的解决方案(我使用的utf7库是C,而mime解析库是C++)。 C++ 始终是更好的选择。

UTF-7 用于在 IMAP 协议中对 non-ASCII 邮箱名称进行编码。这与您的示例无关,该示例显示根据 RFC 2047.

以 MIME-encoded 值提交的 RFC 2822 主题

在您的示例中(带有“=?UTF-8?B?”前缀)解码很简单:后面的字符串(直到“?=”)是 utf-8 编码字符串的 base64 表示.