这是一个破碎的主题线?

时间:2018-02-27 14:57:37

标签: .net vb.net email rfc

使用System.Net.Mail.MailMessage课程我创建了一封电子邮件。该电子邮件是德语,需要包含变音符号ü。出于这个原因,我将对象的SubjectEncoding属性声明为Encoding.UTF8。 收到电子邮件后,我注意到ü已被三个邮件应用程序(GMX webmail)中的两个specials character取代。它在Office Outlook和Apple邮件应用程序中工作

将主题行从下面插入this decoder时,问题可以重现。

我开始调查并在电子邮件的元数据中找到了主题。

Subject: =?utf-8?B?Qk9PVCBUZXN0OiBFcmZvbGdyZWljaGUgQW5tZWxkdW5nIGbD?=
  =?utf-8?B?vHIgZGllIEJlcnVmc2Vya3VuZHVuZw==?=

主题包含两个部分,用于编码标题的第一部分和第二部分。奇怪的是,将主题分成两部分的位置是ü的位置。

我现在不太确定在这种情况下谁有过错。 .Net是否错误地构建了编码主题行,或者webmail /解码器网站中是否存在错误?它只是或多或少严格解释RFC

2 个答案:

答案 0 :(得分:1)

更新(感谢AnFi's answer):您恰好打破了<{1}}多字节字符中的<64> ,使其无效。

您正在寻找的RFC是RFC 2047“MIME(多用途Internet邮件扩展)第三部分:非ASCII文本的邮件标头扩展”

关于该测试系统的说明:它不会尝试强制执行规范(您可以输入原始ü字符,尽管违反了RFC 5322,但它仍会显示而不会发出警告;这在“不打算用作验证者“该页面上的段落。”

这是一个在多字节字符之外打破的base64编码:

ü

这是您的Quoted-Printable编码。对于像德语这样只偶尔使用非ASCII字符的语言,我发现这些语言更加清晰:

Subject: =?utf-8?B?Qk9PVCBUZXN0OiBFcmZvbGdyZWljaGUgQW5tZWxk?=
        =?utf-8?B?dW5nIGbDvHIgZGllIEJlcnVmc2Vya3VuZHVuZwo=?=

答案 1 :(得分:0)

报告[我不使用net / vb.net]

看起来像一个错误

RFC2047 : Message Header Extensions for Non-ASCII Text

  

每个&#39;编码字&#39;必须表示整数个字符。      多个八位字节的字符可能无法在相邻的&#39;编码之间拆分 -      字&#39; S