Я пытаюсь вернуть файл eml через браузер пользователю. Дело в том, что нет статического файла eml - страница его создает. Я могу построить сообщение образца в MimeKit, используя следующий методВозврат сообщения MimeKit в виде файла в браузер
public FileResult TestServe()
{
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Joey", "[email protected]"));
message.To.Add(new MailboxAddress("Alice", "[email protected]"));
message.Subject = "How you doin?";
message.Body = new TextPart("plain")
{
Text = @"Hey Alice,
What are you up to this weekend? Monica is throwing one of her parties on
Saturday and I was hoping you could make it.
Will you be my +1?
-- Joey
"
};
MemoryStream stream = new MemoryStream();
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, message);
return File(stream, "message/rfc822");
}
Но когда я запускаю его я получаю эту ошибку
Type 'MimeKit.MimeMessage' in Assembly 'MimeKit, Version=0.27.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.
Есть ли способ обойти это? Я могу написать eml в временную папку, но, очевидно, это связано с хитом производительности, поэтому я бы предпочел. Есть идеи?
Вы пробовали с помощью [WriteTo] (http://jstedfast.github.io/MimeKit/docs/MimeKit/MimeMessage.html #M: MimeKit.MimeMessage.WriteTo (System.IO.Stream, System.Threading.CancellationToken)) и передать новый поток памяти? – Jan