使用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?
答案 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 强>