首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解码引用的可打印电子邮件头(使用MimeKit)

如何解码引用的可打印电子邮件头(使用MimeKit)
EN

Stack Overflow用户
提问于 2020-11-23 22:54:49
回答 1查看 748关注 0票数 0

我从电子邮件中获得了这个标题:(一些标头仅来自日志文件,而不是整个消息)

代码语言:javascript
运行
复制
From: =?UTF-8?B?TmFtZSDDpMO2w7w=?= <test@example.com>

如何将"From:“之后的部分解码为Unicode字符串,当我将其输入到Thunderbird发送消息时?

其他相关事件是主题标题,我认为我已经看到了这样的内容:

代码语言:javascript
运行
复制
Subject: Hello =?UTF-8?B?TmFtZSDDpMO2w7w=?= more words

我已经在QuotedPrintableDecoder中找到了MimeKit类,但是无法找到如何使用它。它似乎想让它猜出解码后的字节数,然后将希望足够大的缓冲区中的字节转换成字符串,但是没有告诉我要使用什么编码。

我需要一个简短的例子,说明如何转换包含部分引用的可打印单词(包括指定编码)的头字符串。这是在文档中可以找到的一个例子。实际上,所有的数据都在这里,但是需要从一个字符串转换到另一个字符串。

Attachment.CreateAttachmentFromString在这里失败了。它可以解码整个QP字符串,但不能像这样混合格式。

PS:如果在.NET核心3.1或5.0中有不需要MimeKit的解决方案,我也会很高兴地接受这些!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-24 23:04:24

当使用MimeMessage.Load()解析消息时,不需要对头进行解码,因为MimeKit会为您完成该任务。

其次,示例头不是用引号可打印编码的,而是使用rfc2047标记编码的,需要使用Rfc2047.DecodeText()对其进行解码:

代码语言:javascript
运行
复制
var decoded = Rfc2047.DecodeText (Encoding.ASCII.GetBytes ("Hello =?UTF-8?B?TmFtZSDDpMO2w7w=?= more words"));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64977800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档