将多个文件附加到同一封电子邮件

时间:2015-09-30 12:33:31

标签: c#

我需要发送一些Pdf文件作为存储在数据库中的电子邮件附件。

要执行此操作,请在表格中为“选择”字段(其中编码 DateCoding 以及同时运行查询循环,我在其中创建一个列表,其中 PdfCoding 中包含的路径以逗号分隔:

if (reader.HasRows)
{                                
    while (reader.Read())
    {
        PdfCoding = reader["PdfCoding"].ToString();
        string[] itemList = Regex.Split(PdfCoding, @"(?=D:)").Where(x => !string.IsNullOrEmpty(x)).ToArray();
        Commaseplist = String.Join(", ", itemList);
        Response.Write(Commaseplist);
     }
}

现在 Commaseplist 包含此字符串,其中所有路径都包含在 PdfCoding 中:

D:\inetpub\wwwroot\app\public\015.pdfD:\inetpub\wwwroot\app\public\016.pdfD:\inetpub\wwwroot\app\public\017.pdfD:\inetpub\wwwroot\app\public\018.pdfD:\inetpub\wwwroot\app\public\019.pdf

但是当我尝试通过以下方式附加所有PDF文件时:

foreach (string value in itemList)
{
    mailMessagePlainText.Attachments.Add(new Attachment(value.ToString()));
}

作为电子邮件中的附件,我只找到文件 019.pdf ,这是 Commaseplist 列表中的最后一个。

请帮帮我。

编辑#1

Commaseplist 中的字符串为:

D:\inetpub\wwwroot\app\public\015.pdf,D:\inetpub\wwwroot\app\public\016.pd‌​f, D:\inetpub\wwwroot\app\public\017.pdf,D:\inetpub\wwwroot\app\public\018.pdf, D:\inetpub\wwwroot\app\public\019.pdf,

当我尝试通过以下方式附加所有PDF文件时:

mailMessagePlainText.Attachments.Add(new Attachment(Commaseplist.ToString()));

我有这个错误:

Could not find file 'D:\inetpub\wwwroot\app\public\019.pdf,'

2 个答案:

答案 0 :(得分:1)

  string Commaseplist = @"D:\inetpub\wwwroot\app\public\015.pdfD:\inetpub\wwwroot\app\public\016.pdfD:\ine‌​tpub\wwwroot\app\public\017.pdfD:\inetpub\wwwroot\app\public\018.pdfD:\inetpub\ww‌​wroot\app\public\019.pdf";
  string[] itemList = Commaseplist.Replace(".pdf", ".pdf,").TrimEnd(',').Split(',');
  MailMessage mailMessagePlainText = new MailMessage();
  foreach (string value in itemList)
  {
       mailMessagePlainText.Attachments.Add(new Attachment(value));
  }

enter image description here

答案 1 :(得分:0)

我觉得生活已经困难,为什么复杂多了? ...

对于你的问题我建议:

  1. 在方法sql查询中,您需要创建一个List字符串并为pdf文件添加每个单独的路径:

        List<string> pdfList = new List<string>();
    
        ...
    
        if (reader.HasRows)
        {
            while (reader.Read())
            {
                pdfList.Add(reader["PdfCoding"].ToString());                                    
            }
        }
    
  2. 在发送电子邮件的方法中:

    //Start
    foreach (string file in pdfList)
    {
        mailMessagePlainText.Attachments.Add(new Attachment(file));
    }
    //End
    
  3. 希望这有帮助!

    快乐的编码!