我从电子邮件中获得了这个标题:(一些标头仅来自日志文件,而不是整个消息)
From: =?UTF-8?B?TmFtZSDDpMO2w7w=?= <test@example.com>如何将"From:“之后的部分解码为Unicode字符串,当我将其输入到Thunderbird发送消息时?
其他相关事件是主题标题,我认为我已经看到了这样的内容:
Subject: Hello =?UTF-8?B?TmFtZSDDpMO2w7w=?= more words我已经在QuotedPrintableDecoder中找到了MimeKit类,但是无法找到如何使用它。它似乎想让它猜出解码后的字节数,然后将希望足够大的缓冲区中的字节转换成字符串,但是没有告诉我要使用什么编码。
我需要一个简短的例子,说明如何转换包含部分引用的可打印单词(包括指定编码)的头字符串。这是在文档中可以找到的一个例子。实际上,所有的数据都在这里,但是需要从一个字符串转换到另一个字符串。
Attachment.CreateAttachmentFromString在这里失败了。它可以解码整个QP字符串,但不能像这样混合格式。
PS:如果在.NET核心3.1或5.0中有不需要MimeKit的解决方案,我也会很高兴地接受这些!
发布于 2020-11-24 23:04:24
当使用MimeMessage.Load()解析消息时,不需要对头进行解码,因为MimeKit会为您完成该任务。
其次,示例头不是用引号可打印编码的,而是使用rfc2047标记编码的,需要使用Rfc2047.DecodeText()对其进行解码:
var decoded = Rfc2047.DecodeText (Encoding.ASCII.GetBytes ("Hello =?UTF-8?B?TmFtZSDDpMO2w7w=?= more words"));https://stackoverflow.com/questions/64977800
复制相似问题