当电子邮件地址中出现 `=?iso8859-1?B?`...`?=` 时会发生什么?

当电子邮件地址中出现 `=?iso8859-1?B?`...`?=` 时会发生什么?

=?iso8859-1?B?我在电子邮件地址中看到类似...的内容?=。我认为这是在某个 RFC 中定义的。有人能解释一下在哪里吗?现在一切都是 Unicode 了,这是否已经过时了?

答案1

这是 RFC 2047 “编码字”格式,用于 MIME 格式的电子邮件消息(即基本上所有电子邮件消息),以便将 8 位数据放入 7 位 ASCII 中。它与 HTTP GET 或查询字符串无关。

编码字对于标题而言就像内容传输编码对于消息主体一样 - 两者都使用 Base64 或 Quoted-Printable 格式将 8 位数据转换为 7 位 ASCII 数据,并且两者都是消息中的正常现象。

但是,通常情况下,您不应该在邮件应用中看到此类编码文本(除非查看消息源)——它应该始终在 UI 中显示解码。如果邮件应用向您显示原始编码字,则很可能无法正确解码(例如,发件人指定了错误的字符集)。

这种格式并没有被 Unicode 淘汰;它完成了不同的任务,并且同样适用于所有字符集。事实上,您会经常看到 Unicode 文本被编码为=?utf-8?...

然而,它可能被 SMTP“8BITMIME”扩展所淘汰。与许多电子邮件一样,它来自某些网络不是“8 位清洁”的时代,可能会丢弃或破坏高位的值 - 对于通过 TCP/IP 运行的现代 SMTP 软件来说,这种情况已不复存在。

答案2

最有可能的是,这是由插件配置错误或编写不当的软件生成的电子邮件。“=”和“?”可能表示 GET 参数在某个函数中被传递(并被错误解释/错误排列)。

例如参见:(https://magento.stackexchange.com/questions/37663/plugin-email-sender-incorrectly-uses-iso-8859-1) 其中 OP 引用了基于错误的类似混乱。

来自:=?iso-8859-1?Q? (...) =[电子邮件保护]

相关内容