Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#邮件消息替代查看忽略传输编码_C#_Calendar_Mailmessage_Quoted Printable_Alternateview - Fatal编程技术网

C#邮件消息替代查看忽略传输编码

C#邮件消息替代查看忽略传输编码,c#,calendar,mailmessage,quoted-printable,alternateview,C#,Calendar,Mailmessage,Quoted Printable,Alternateview,我们用多种语言从系统中发送日历邀请。(英语、西班牙语、德语等) 最近,我们添加了格鲁吉亚语,并且有邮件消息编码的问题 例如:თბილისი' 在电子邮件中以“áƒ-Ⴣƒƒƒƒƒƒƒƒƒ”的形式发送 我们发送的电子邮件包括HTML备选视图和文本/日历备选视图。 我将两个备选视频传输编码设置为QuotedPrintable 它适用于HTML视图,但不适用于日历视图。它总是按原样发送 在我的SmtpClient中,我设置了DeliveryFormat=SmtpDeliveryFormat.Inte

我们用多种语言从系统中发送日历邀请。(英语、西班牙语、德语等) 最近,我们添加了格鲁吉亚语,并且有邮件消息编码的问题

例如:თბილისი' 在电子邮件中以“áƒ-Ⴣƒƒƒƒƒƒƒƒƒ”的形式发送

我们发送的电子邮件包括HTML备选视图和文本/日历备选视图。 我将两个备选视频传输编码设置为QuotedPrintable

它适用于HTML视图,但不适用于日历视图。它总是按原样发送

在我的
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 msg = new MailMessage();
msg.BodyTransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;
msg.BodyEncoding = Encoding.UTF8;
如蒙指导,不胜感激。 我花了几个小时尝试各种编码组合,但都没有用

谢谢

下面是Gmail中出现的一个例子。 HTML视图显示位置正确,但卡不正确。
设置
邮件。BodyEncoding
是远远不够的;必须分别为所有备选视图设置
字符集

var calendarView = AlternateView.CreateAlternateViewFromString(body, new ContentType("text/calendar"));
calendarView.ContentType.CharSet = Encoding.UTF8.WebName;
msg.AlternateViews.Add(calendarView);

结果证明这与我上面的代码无关

我们使用第三方提供商发送电子邮件(PostmarkApp)。 它们在发送之前将所有文本/日历附件/备选视图转换为7位。因此,非ASCII字符最终将被损坏

我将SMTP详细信息更改为Gmail,并使用正确的编码发送电子邮件。
关于这个问题,我与他们有一个公开的问题。

谢谢塔夫-我尝试了你的建议,但结果仍然是一样的。我在问题中添加了一张图片,展示它在Gmail中的表现。