我们从我们的系统以多种语言发送日历邀请。(英语、西班牙语、德语等)最近我们添加了格鲁吉亚语,并且正在解决 MailMessage 的编码问题。
例如,电子邮件中的“თბილისი”以“თáƒ'áƒ~ლáƒ~სáƒ~”的形式到达
我们发送的电子邮件包括一个 HTML AlternateView 和一个文本/日历 AlternateView。我将 AlternateViews TransferEncoding 都设置为 QuotedPrintable。
它适用于 HTML 视图,但不适用于日历视图。它总是以 7 位发送。
在我的SmtpClient
我已经设置DeliveryFormat = SmtpDeliveryFormat.International
这就是我添加我的方式AlternateView
:
var iCalInvite = InterviewService.CreateICALInvite(uniqueId, model.StartTimeUTC, model.EndTimeUTC, model.Location, model.Note, personCompany.Person.Email, personCompany.Person.FullName, interviewAttendee, model.Attendees, msg, _currentUser);
iCalInvite.TransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;
msg.AlternateViews.Add(iCalInvite);
这是 HTML 视图的输出
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
这是日历视图的错误输出
Content-Type: text/calendar; method=REQUEST; charset=UTF-8;
Content-Transfer-Encoding: 7bit
我尝试以多种组合设置 MailMessage 的编码,但似乎没有一个能正确输出格鲁吉亚文本。
MailMessage msg = new MailMessage();
msg.BodyTransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;
msg.BodyEncoding = Encoding.UTF8;
任何方向的帮助将不胜感激。我花了几个小时尝试各种编码组合但无济于事。
谢谢!