Создайте MIME-сообщение из необработанного текста электронной почты

#c# #mimekit

#c# #mimekit

Вопрос:

Мне нужно обработать необработанные сообщения электронной почты и извлечь адреса кому и откуда. Я мог бы просто выполнить поиск «Кому:», но я бы предпочел сделать это структурированным способом, чтобы избежать проблем.

Как я могу создать MIME-сообщение из необработанного текста электронной почты, а затем получить заголовки кому / откуда?

Я уже видел, как MimeKit использовался для отправки электронных писем раньше, но, похоже, не смог найти способ увлажнить объект сообщения MimeKit из необработанной строки, чтобы я мог извлекать заголовки To / From. Я получаю эту ошибку во время выполнения, если просто пытаюсь передать необработанный текст электронной почты в конструктор:

 Exception: System.ArgumentException: Unknown initialization parameter: System.String
   at MimeKit.MimeMessage..ctor(Object[] args)
   at AWSS3Test.Services.CallS3.ListingObjectsAsync()
 

Google не вернул ничего полезного.

Это не обязательно должен быть MimeKit, но как я могу это сделать?

Комментарии:

1. Вы видели документацию? github.com/jstedfast/MimeKit#parsing-messages Вам придется либо обернуть свое сообщение потоком, либо прочитать его непосредственно с диска

2. Ваша ссылка не сработала, но вы указали мне правильный путь, спасибо. Я отвечу на свой собственный вопрос, должен быть поток и использовать метод загрузки, а не конструктор.

Ответ №1:

Его нужно использовать.Загрузить не конструктор, а строку необходимо преобразовать в поток

 var message = new MimeMessage();
byte[] byteArray = Encoding.ASCII.GetBytes(TestEmail);
MemoryStream stream = new MemoryStream(byteArray);
message = MimeMessage.Load(stream);