DotNetZipを使用して、MemoryStream
からzipファイルにファイルを追加し、そのzipをとして保存しMemoryStream
て、添付ファイルとして電子メールで送信できるようにしています。以下のコードは誤りではMemoryStream
ありませんが、判読できないため、正しく実行してはなりません。zipをハードドライブに保存すると、ストリームに保存しようとしたときではなく、すべてが完全に機能します。
using (ZipFile zip = new ZipFile())
{
var memStream = new MemoryStream();
var streamWriter = new StreamWriter(memStream);
streamWriter.WriteLine(stringContent);
streamWriter.Flush();
memStream.Seek(0, SeekOrigin.Begin);
ZipEntry e = zip.AddEntry("test.txt", memStream);
e.Password = "123456!";
e.Encryption = EncryptionAlgorithm.WinZipAes256;
var ms = new MemoryStream();
ms.Seek(0, SeekOrigin.Begin);
zip.Save(ms);
//ms is what I want to use to send as an attachment in an email
}