C#使用gmail创建和发送Zip文件

C#使用gmail创建和发送Zip文件,c#,email,compression,zip,rar,C#,Email,Compression,Zip,Rar,我正在尝试使用C#压缩并发送.csv文件。 我创建文件,压缩它们并使用SMTP Gmail主机发送它们 有时,这封电子邮件可能需要几个小时才能到达目的地。 对于测试,我使用非常小的文件,所以大小不是问题 如果我尝试使用gmail“手动”发送这些ZIP,我会得到以下错误: myFile.csv.zip包含可执行文件。出于安全原因,Gmail不允许您发送此类文件 我认为我的压缩方法可能有问题,但这很简单: string compressedFile = fileName + ".zip"; Fil

我正在尝试使用C#压缩并发送.csv文件。 我创建文件,压缩它们并使用SMTP Gmail主机发送它们

有时,这封电子邮件可能需要几个小时才能到达目的地。 对于测试,我使用非常小的文件,所以大小不是问题

如果我尝试使用gmail“手动”发送这些ZIP,我会得到以下错误: myFile.csv.zip包含可执行文件。出于安全原因,Gmail不允许您发送此类文件

我认为我的压缩方法可能有问题,但这很简单:

string compressedFile = fileName + ".zip";

FileInfo fi = new FileInfo(fileName);
using (FileStream inFile = fi.OpenRead())
{
    using (FileStream outFile = File.Create(compressedFile))
    {
        using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
        {
            inFile.CopyTo(Compress);
            Compress.Close();
        }
        outFile.Dispose();
    }
}
return compressedFile;
请注意: 如果我把同一个文件手动压缩或rar,我没有问题。文本文件也会出现这种情况

引自:

写入扩展名为.gz的文件的压缩GZipStream对象可以使用许多常用压缩工具进行解压缩

GZip文件不是真正的“zip”文件。他们通常使用“gz”作为文件扩展名。你可以试试,也许Gmail在“匹配”扩展和压缩格式方面非常严格


如果您使用的是.NET4.5,也可以使用该类。那一个实际上处理“zip”文件。

您是否尝试过使用
DeflateStream
或为您的档案提供“.gz”文件扩展名?也许Gmail在“匹配”扩展和压缩格式方面非常严格。如果其他程序能够打开它,实际上使用
DeflateStream
可能不是一个好主意。我自己从来没有使用过它,但经过一点阅读后,它似乎实际上并没有生成默认的zip文件。你在.NET4.5上吗?然后你应该使用
ZipFile
ZipArchive
@cremor提供一个.gz扩展名来解决问题:)如果你把这个作为你的答案,我会接受的。