C#Outlook.MailItem发件人名称编码

时间:2018-05-30 14:22:50

标签: c# outlook

我正在制作用于发送电子邮件的outlook vsto插件,我遇到编码问题。 如果我只在消息中发送英文字符,则将其编码为ascii,并且在outlook发送者名称中不显示塞尔维亚语拉丁字符。 如果我在邮件中发送塞尔维亚语拉丁字符,则编码为iso-8859-2,并且在outlook发件人名称中没有问题。

Outlook.Application _app = new Outlook.Application();
Outlook.MailItem mail = _app.CreateItem(Outlook.OlItemType.olMailItem);

mail.To = txtTo.Text;
mail.Subject = "Promena adrese";

mail.Body = txtPackageNum.Text + " " + txtNewAddress.Text;

mail.Send();

Here's what it looks like in inbox

我该如何解决这个问题?无论在消息中发送什么,我都希望编码为utf-8

1 个答案:

答案 0 :(得分:1)

请尝试以下代码,

mail.BodyEncoding =  System.Text.Encoding.UTF8;

这将以utf8格式对您的邮件进行编码。如果您还想编码主题,那么您可以使用

mail.SubjectEncoding = System.Text.Encoding.UTF8;

有关更多信息,您还可以访问msdn页面 MSDN link