C# 在MVC3中通过邮件发送Zip文件

C# 在MVC3中通过邮件发送Zip文件,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我使用ICSharpCode.SharpZipLib.Zip库创建Zip文件,它工作正常,但当我将此Zip文件附加到邮件附件时,由于附加了Zip文件,邮件不会发送 下面是将zip文件附加到邮件的代码 System.Net.Mail.Attachment attachment = null; try { MemoryStream memoryStream = new MemoryStream()

我使用ICSharpCode.SharpZipLib.Zip库创建Zip文件,它工作正常,但当我将此Zip文件附加到邮件附件时,由于附加了Zip文件,邮件不会发送

下面是将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文件?

您的代码

MemoryStream memoryStream = new MemoryStream();
attachment = new System.Net.Mail.Attachment(memoryStream, "test.zip");
传递一个流,但该流是空的(在
memoryStream
中没有任何内容)

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

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

memoryStream.Position = 0;

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

这个问题可能有很多原因

  • 检查文件日期和时间
  • 文件大小(基于服务器设置)
  • 尝试不同的格式(rar、7z等)

  • 谢谢回复,是的,我在磁盘上有zip文件,你能给我举个例子,说明如何使用文件流来附加zip文件吗?