无法通过邮件发送 Zip 流



我有一个MemoryStream,它代表一个zip文件。这是流的创建方式:

var zipMemoryStream = new MemoryStream();
using (var zipPackage = Package.Open(zipMemoryStream, FileMode.CreateNew))
{
    foreach (var file in files)
    {
        var c = new Uri("/" + file.FileName + extension, UriKind.Relative);
        var zipPart = zipPackage.CreatePart(c, fileType);
        if (zipPart == null)
            continue;
        CopyStream(file.MemoryStream, zipPart.GetStream());
    }
}
File.WriteAllBytes("C:\ZipTest.zip", zipMemoryStream.ToArray());
try
{
    mailMsg.Attachments.Add(new Attachment(zipMemoryStream, "ZipTest.zip",
                            MediaTypeNames.Application.Zip));
}

如您所见,我添加了 File.WriteAllBytes 行,它将流保存到我的 HDD(用于测试)。

保存在HDD上的文件完美无瑕,如果zip中的文件为空,则重量约为138B。

但是,我在邮件中得到的附件重量为0B。

知道为什么附件重 0B 吗?

是的,在大多数情况的位置位于流的末尾。

尝试

try
{
    zipMemoryStream.Position = 0;
    mailMsg.Attachments.Add(new Attachment(zipMemoryStream, "ZipTest.zip",
                            MediaTypeNames.Application.Zip));
}

相关内容

  • 没有找到相关文章

最新更新