Tôi có đoạn mã này tạo tệp đính kèm và gửi email. Nếu tên của tập tin chứa æ, ø hoặc æ, tên bị phá hủy hoàn toàn.Tên của tệp đính kèm được giải mã sai nếu chữ cái Na Uy được sử dụng
Nếu tôi loại bỏ chữ Na Uy, tất cả mọi thứ là ok
var stream = new MemoryStream();
doc.Save(stream, SaveFormat.Docx);
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");
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);
Làm thế nào để có được công việc này đúng cách?
SOLUTION
Tôi tìm thấy một giải pháp ở đây http://social.msdn.microsoft.com/Forums/en-US/dotnetframeworkde/thread/b6c764f7-4697-4394-b45f-128a24306d55
là 'mail' một' MailMessage'? Nếu vậy, bạn có thể kiểm tra xem tất cả các thuộc tính "mã hóa", như 'BodyEncoding',' HeadersEncoding' và vv, có cùng giá trị không? –
Tất cả các tham số này là UTF8> mail.SubjectEncoding = Encoding.UTF8; mail.BodyEncoding = Encoding.UTF8; mail.HeadersEncoding = Encoding.UTF8; Nó không giúp được. – podeig