我創建了一個方法來收集文件夾中的每個文件,然後將它們插入到一個zip文件中。該zip文件然後通過郵件發送給客戶。我的問題是,我可以發送一封附帶zip文件的郵件而不會有任何問題,但是如果另一個用戶生成zip文件併發送它,它將如下所示。將文件添加到Zip並通過郵件發送問題C#
我試圖附加Excel文件到郵件消息時有同樣的問題。但我發現你必須設置你附加的文件的ContentType。並且在添加了這一行之後:ContentType ct = new ContentType("application/vnd.ms-excel");
用於其工作的excel文件。我的問題是,我現在想附加一個zip文件,我使用這一行:`ContentType ct = new ContentType(「application/zip」);但這不起作用。我正在使用DotNetZipLib-DevKit-v1.9將文件添加到一個zip文件。
這是我的代碼:
public void SendMailedFilesVallensbaek()
{
string[] vallensbeakFileNames = Directory.GetFiles(vallensbaekFiles);
if (vallensbeakFileNames.Count() > 0)
{
ContentType ct = new ContentType("application/zip");
string zipFile = [email protected]"\someZipFile.zip";
using (ZipFile zip = new ZipFile())
{
foreach (string file in vallensbeakFileNames)
{
zip.AddFile(file);
}
zip.Save(zipFile);
}
using (System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("ares"))
{
using (System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage())
{
msg.From = new MailAddress("[email protected]");
msg.To.Add(new MailAddress("[email protected] "));
msg.Subject = "IBM PUDO";
msg.Body = "Best Regards";
msg.Body += "<br/>";
msg.Body += "me";
msg.IsBodyHtml = true;
Attachment attachment = new Attachment(zipFile, ct);
msg.Attachments.Add(attachment);
//foreach (string file in sentFiles)
//{
// Attachment attachment = new Attachment(file, ct);
// msg.Attachments.Add(attachment);
//}
client.Send(msg);
client.Dispose();
msg.Dispose();
ct = null;
}
}
}
}
在使用中調用'Dispose'不是必需的。使用塊將自動調用它。 – 2013-03-22 10:40:10
嘗試設置MIME頭'Content-Disposition:attachment;文件名= filename.zip;''附件'上。這可能與Outlook處理附件的方式有關。 – Madushan 2013-03-22 11:16:34
我應該如何在Windows窗體應用程序中做到這一點? – Lahib 2013-03-22 12:08:29