我需要发送一些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.pdf, 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,'
答案 0 :(得分:1)
string Commaseplist = @"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";
string[] itemList = Commaseplist.Replace(".pdf", ".pdf,").TrimEnd(',').Split(',');
MailMessage mailMessagePlainText = new MailMessage();
foreach (string value in itemList)
{
mailMessagePlainText.Attachments.Add(new Attachment(value));
}
答案 1 :(得分:0)
我觉得生活已经困难,为什么复杂多了? ...
对于你的问题我建议:
在方法sql查询中,您需要创建一个List字符串并为pdf文件添加每个单独的路径:
List<string> pdfList = new List<string>();
...
if (reader.HasRows)
{
while (reader.Read())
{
pdfList.Add(reader["PdfCoding"].ToString());
}
}
在发送电子邮件的方法中:
//Start
foreach (string file in pdfList)
{
mailMessagePlainText.Attachments.Add(new Attachment(file));
}
//End
希望这有帮助!
快乐的编码!