通过MVC3中的邮件发送Zip文件

时间:2013-02-12 06:37:27

标签: c# asp.net-mvc-3

我已经使用 ICSharpCode.SharpZipLib.Zip 库来创建Zip文件,但是当我将此Zip文件附加到邮件附件时,由于附加的zip文件,邮件不会被发送,< / p>

这是将zip文件附加到邮件的代码

System.Net.Mail.Attachment attachment = null;
                try
                {
                    MemoryStream memoryStream = new MemoryStream();
                    attachment = new System.Net.Mail.Attachment(memoryStream, "test.zip");
                }
                catch (Exception e)
                {
                    return false;
                } 

请知道我如何通过邮件发送zip文件?

2 个答案:

答案 0 :(得分:1)

您的代码

MemoryStream memoryStream = new MemoryStream();
attachment = new System.Net.Mail.Attachment(memoryStream, "test.zip");

传递一个Stream,但该流为空(memoryStream中没有任何内容。)

如果要使用MemoryStream,则必须将ZIP文件的内容读入内存。如果ZIP已经在磁盘上,您也可以使用FileStream。

如果使用MemoryStream,请确保将其位置设置为0。

memoryStream.Position = 0;

根据您使用SharpZipLib的方式,您可以访问ZipOutputStream。如果你这样做,我想你可以使用它。

答案 1 :(得分:0)

这个问题可能有很多原因,

  1. 检查文件日期&amp;时间
  2. 文件大小(基于服务器设置)
  3. 尝试不同的格式(rar,7z等)