簡體   English   中英

Zip 使用 dotnetzip 庫附加到 email 后無法打開文件

[英]Zip File not able to open after attaching to email using dotnetzip library

我能夠將所有文件保存到 zip 文件中並正確下載。 現在我需要使用 zip 文件附加到 email。 我收到錯誤說它無法打開,如果我在記事本中打開它,它們是空白的。 它們是pdf。

這是我下載它們的方式:

else if (radio[0] == "Email Statements")
{
    // Make array of emails into List for sending in email 
    if (emails.ToString() != "")
    {
        var allEmails = emails[0].Split(',');

        foreach (var email in allEmails)
        {
            if (emailValid.IsMatch(email))
            {
                everyEmail.Add(email);
            }
            else
            {
                return Json(new { success = false, message = $"* Not valid email address: {email}.\n\n * Please double check and try again." });
            }

            List<string> distinctFiles = allPaths
                .GroupBy(x => x.Split(new char[] { '\\' }).Last())
                .Select(x => x.First())
                .ToList();
            using (ZipFile zip = new ZipFile())
            {
                zip.AddFiles(distinctFiles, @"\");
                MemoryStream output = new MemoryStream();
                output.Position = 0;
                zip.Save(output);
                
                DBQueries.SendEmail(everyEmail, output, fromAddress, "Client Statement Reports", "Here are your requested Client Statements", true);

所以DBQueries.SendEmail function 將把我帶到這個:

public static void SendEmail(List<string> recipients, MemoryStream output, string from, string subject, string htmlMessage, bool isHtml = true)
{
    var host = ConfigurationManager.AppSettings["emailHost"];
    
    try
    {
        MailMessage mail = new MailMessage();
        mail.From = new MailAddress(from);

        foreach (var r in recipients)
        {
            mail.To.Add(r);
        }
        
        mail.Subject = subject;
        mail.IsBodyHtml = isHtml;
        mail.Body = htmlMessage;
        //string result = System.Text.Encoding.UTF8.GetString(output.ToArray());

        SmtpClient SmtpServer = new SmtpClient(host);
        SmtpServer.Port = 25;
       
        mail.Attachments.Add(new Attachment(output, "Client Statments"));
        SmtpServer.Send(mail);
    }
    catch (Exception ex)
    {
       FMBUtilities.Logger.LogErrorToSql2012Prd("DBQueries", "SendEmail", ex);
    }
}

在此之后我無法閱讀附件。 我需要做什么才能使其可讀?

請在附件中使用正確的格式。 你可以試試 mail.Attachments.Add(new Attachment(output, "Client Statments.zip"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM