1

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("somebody@example.com");
message.From = new MailAddress("someother@example.com", "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?

1 Answers1

0

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.

jstedfast
  • 35,744
  • 5
  • 97
  • 110