I have MailMessage, its HeadersEncoding is windows-1251. Then I create MimeMessage with MimeMessage.CreateFromMailMessage(message), but its headers encoded in utf-8.
Why mimekit changes encoding and how to avoid this?
I have this code:
var message = new System.Net.Mail.MailMessage();
message.To.Add("[email protected]");
message.From = new MailAddress("[email protected]", "display name");
message.Body = "<some message body>";
message.BodyEncoding = Encoding.GetEncoding("windows-1251");
message.SubjectEncoding = Encoding.GetEncoding("windows-1251");
message.HeadersEncoding = Encoding.GetEncoding("windows-1251");
Send message with default smtp client:
var client = new System.Net.Mail.SmtpClient(emailHost, settings.ServerPort);
client.Send(message);
Got From: =?windows-1251?q?... (as expected)
Send message with MailKit smtp client:
var client = new MailKit.Net.Smtp.SmtpClient();
var mimeMessage = MimeMessage.CreateFromMailMessage(message);
client.Send(mimeMessage);
Now got From: =?utf-8?b?
This bug has now been fixed in the latest rolling build of MimeKit that you can get here: https://www.myget.org/feed/mimekit/package/nuget/MimeKit
Fix: https://github.com/jstedfast/MimeKit/commit/c66cc46000ac260194bab0ca4f26b9f39c177d9e
It will be included in the 3.6.0 release that I am planning to make sometime later this week.