3

ブラウザーを介してユーザーに eml ファイルを返そうとしています。つまり、静的な eml ファイルはありません。ページが作成します。次の方法を使用して、MimeKit でサンプル メッセージを作成できます。

public FileResult TestServe()
{
    var message = new MimeMessage();
    message.From.Add(new MailboxAddress("Joey", "joey@friends.com"));
    message.To.Add(new MailboxAddress("Alice", "alice@wonderland.com"));
    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 を一時フォルダーに書き込むことはできますが、明らかにパフォーマンスが低下するため、書きたくありません。何か案は?

4

1 に答える 1