Tôi đang sử dụng Amazon SES SendRawEmail API vì thế tôi cần một MailMessage làm bộ nhớ.C# MailMessage để phát trực tuyến - sự cố mã hóa
Tôi đã tìm thấy một số câu trả lời cho vấn đề MailMessage to MemoryStream ở đây trên stackoverflow.
Giải pháp 1: Sử dụng một trong đó sử dụng phương pháp riêng nó kết quả trong mã hóa sai của các bộ phận của email: https://stackoverflow.com/a/8826833
Giải pháp 2: Không có vấn đề Encoding sử dụng giải pháp này, nơi bạn gửi cho một pickup và sau đó đọc lại: https://stackoverflow.com/a/14350088
Tôi rất không thích thực tế là tôi cần ghi vào tệp tạm thời để thực hiện công việc này một cách chính xác. Có ai có bất kỳ ý tưởng làm thế nào các giải pháp MemoryStream tinh khiết có thể mess up một số mã hóa.
Các mail iam thử nghiệm với là thế này:
var mailMessage = new MailMessage();
mailMessage.Subject = "HEADER WITH SPECIAL ÆØÅ";
mailMessage.Body = "TEST";
Attachment att = new Attachment(@"C:\AttachmentWithSpecial ÆØÅ.pdf");
mailMessage.Attachments.Add(att);
mailMessage.From = new MailAddress("[email protected]", "NameÆØÅ");
mailMessage.To.Add(new MailAddress("[email protected]", "NameÆØÅ"));
Để tóm tắt:
- Nếu tôi gửi thông điệp này với SMTP tiêu chuẩn có vẻ tốt.
- Nếu tôi gửi nó bằng cách sử SendRawEmail có vẻ tốt nếu tôi tạo ra MemoryStream bằng cách sử dụng giải pháp 2
- Nếu tôi gửi nó bằng cách sử SendRawEmail nó có vấn đề mã hóa nếu tôi tạo ra MemoryStream bằng cách sử dụng giải pháp 1.
với các vấn đề mã hóa tôi có nghĩa là 'ø' hiển thị như
Tại sao bạn không sử dụng SendEmail? SES cho phép bạn soạn email và nó hỗ trợ mã hóa. –
Như tôi thấy nó không hỗ trợ tệp đính kèm. ? –
Ồ vâng, bạn đã thử sử dụng StringWriter chưa? Memory Stream có thể bỏ qua mã hóa vì nó sử dụng byte làm dung lượng lưu trữ. –