我有这段代码可以创建附件并发送电子邮件。如果文件名中包含 æ、ø 或 æ,则该文件名将被完全销毁。
如果我删除挪威字母,一切正常
var stream = new MemoryStream();
doc.Save(stream, SaveFormat.Docx);
mail.From = new MailAddress("no-replay@email.no");
mail.To.Add("my@email.no");
mail.IsBodyHtml = true;
mail.Subject = "Attachments test";
mail.Body = "Hei,<br /><br />";
stream.Seek(0, SeekOrigin.Begin);
var attachment = new Attachment(stream, "Name Å Æ Ø.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
attachment.NameEncoding = Encoding.UTF8;
mail.Attachments.Add(attachment);
var smtp = new SmtpClient("smtp.server.com") {Port = 25};
smtp.Send(mail);
如何使这项工作正常进行?
解决方案
最佳答案
这是微软针对 .net framework 4 的解决方案
关于c# - 如果使用挪威字母,附件名称解码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10434610/