这是一个破碎的主题线?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是一个破碎的主题线?相关的知识,希望对你有一定的参考价值。
使用System.Net.Mail.MailMessage
课程我创建了一封电子邮件。这封电子邮件是德文版,需要包含umlautü。出于这个原因,我将对象的SubjectEncoding
属性声明为Encoding.UTF8
。在收到电子邮件时,我注意到ü已经被两个specials character从三个邮件应用程序(GMX webmail)中的一个中取代。它适用于Office Outlook和Apple邮件应用程序。
当将主题行从下面插入this decoder时,问题是可重现的。
我开始调查并在电子邮件的元数据中找到主题行。
Subject: =?utf-8?B?Qk9PVCBUZXN0OiBFcmZvbGdyZWljaGUgQW5tZWxkdW5nIGbD?=
=?utf-8?B?vHIgZGllIEJlcnVmc2Vya3VuZHVuZw==?=
该主题包含两个部分,它们编码标题的第一和第二部分。奇怪的是,将主题分成两部分的位置是ü的位置。
我现在不太确定在这种情况下谁有过错。 .Net是否错误地构建了编码主题行,或者webmail /解码器网站中是否存在错误?这只是或多或少严格解释RFC?
更新(感谢AnFi's answer):你碰巧打破了ü
多字节字符内的base64,使其无效。
您正在寻找的RFC是RFC 2047,“MIME(多用途Internet邮件扩展)第三部分:非ASCII文本的邮件头扩展”。
关于该测试系统的说明:它不会尝试强制执行规范(您可以输入原始ü
字符,尽管违反了RFC 5322,但它仍然显示没有警告;这在“不打算用作验证器”段落中注明那个页面)。
这是一个在多字节字符之外打破的base64编码:
Subject: =?utf-8?B?Qk9PVCBUZXN0OiBFcmZvbGdyZWljaGUgQW5tZWxk?=
=?utf-8?B?dW5nIGbDvHIgZGllIEJlcnVmc2Vya3VuZHVuZwo=?=
这是你的Quoted-Printable编码。对于像德语这样只偶尔使用非ASCII字符的语言,我发现这些语言更加清晰:
Subject: BOOT Test: Erfolgreiche Anmeldung =?utf-8?Q?f=C3=BCr?= die
Berufserkundung
它看起来像一个报告错误[我不使用net / vb.net]
RFC2047 : Message Header Extensions for Non-ASCII Text
每个'编码字'必须代表整数个字符。多个八位字节字符可能不会在相邻的“编码字”之间分割。
以上是关于这是一个破碎的主题线?的主要内容,如果未能解决你的问题,请参考以下文章