将文件添加到Zip并通过邮件问题发送它们C#

时间:2013-03-22 10:16:36

标签: c# .net zip content-type

我创建了一个方法来收集文件夹中的每个文件,然后将它们插入到zip文件中。然后将zip文件通过邮件发送给客户。我的问题是我可以发送附带zip文件的邮件消息没有任何问题,但如果另一个用户生成zip文件并发送它,它将如下所示。

enter image description here

尝试将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 = vallensbaekFiles+@"\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("system@mail.dk");
                        msg.To.Add(new MailAddress("lmy@mail.dk "));
                        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;
                    }
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

您应该检查是否在本地文件夹中创建了zip文件 并且ASP.NET用户可以访问您的本地文件夹。