必要なコードから MIME GUI を分離しようとしています。交換方法がわからないGUI要素がもう1つあるだけです。この要素は openfiledialog です。ここにコードスニペットがあります。
Program.cs
var sfd = new OpenFileDialog();
sfd.FileName = "C:\\eml\\" + validOutputFilename;
try
{
var writer = new MimeMessageWriter();
using (var fs = sfd.OpenFile()) writer.Write(message, fs);
}
catch (Exception ex)
{
//ignore
// need to log
}
メッセージは IMessage です。eml ファイルに関する情報を格納するために作成されたクラス。ファイルを開くダイアログでは、ファイル名に eml 拡張子を付けることができます。それだけです。write.Write は、IMessage とストリームを想定しています。writer.Write 内でファイルが書き込まれます このコードを使用するファイルの唯一の部分は、ファイル自体が最後に書き込まれ、添付ファイルを書き出すときです。これらのコード スニペットを次に示します。
*MimeMessageWriter
・付属品はこちらを使用
var embeddedMessage = attachment.OpenAsMessage();
var messageWriter = new MimeMessageWriter();
var msgStream = new MemoryStream();
messageWriter.Write(embeddedMessage, msgStream);
var messageAttachment = ew DotNetOpenMail.FileAttachment(msgStream.ToArray());
messageAttachment.ContentType = "message/rfc822";
messageAttachment.FileName = filename + ".eml";
outMessage.AddMixedAttachment(messageAttachment);
-ファイルのファイル部分を書き出す
using (var sw = new StreamWriter(stream))
sw.Write(outMessage.ToDataString());
openFileDialog を、ファイル名を渡して MimeMessageWriter にファイルを書き出せるようにするものに置き換えたい