我想使用C#發送Zip文件併發送.csv文件。 我創建這些文件,將它們壓縮並使用SMTP Gmail主機發送它們。C#使用gmail創建和發送Zip文件
它有時可能需要幾個小時才能到達目的地。 對於測試,我使用非常小的文件,所以大小不是問題。
如果我嘗試使用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;
剛一說明: 如果我採取相同的文件,手動ZIP或RAR它,我沒有問題。這也發生在文本文件上。從MSDN
您是否嘗試過使用「DeflateStream」或爲檔案提供「.gz」文件擴展名?也許Gmail對「匹配」擴展和壓縮格式非常嚴格。 – cremor
實際上使用'DeflateStream'可能不是一個好主意,如果其他程序應該能夠打開它。我從來沒有用過它自己,但經過一些閱讀後,它似乎實際上並沒有產生一個默認的zip文件。你在.NET 4.5嗎?那麼你應該使用'ZipFile'或'ZipArchive'。 – cremor
@cremor給出一個.gz擴展名解決了問題:)如果你發佈這個作爲你的答案,我會接受它。 –