我正在尝试将附件添加到通过程序发送的电子邮件中,但出现上述错误。
我要保存在运行时拍摄的图像,并将名称添加到名为ImageFilenames的列表中。然后,我使用下面的代码检索文件并将它们添加为附件,但是我似乎无法弄清楚该工作需要做什么。
SaveScreenshots();
using (MemoryStream stream = new MemoryStream())
{
using (SmtpClient SmtpServer = new SmtpClient())
{
using (MailMessage mail = new MailMessage())
{
mail.From = new MailAddress("*****.******@******.com");
mail.To.Add("******@*****.com");
mail.Subject = this.Summary;
mail.Body = this.ToString();
SmtpServer.Port = ***;
foreach (string file in ImageFilenames)
{
var images = Directory.GetFiles(file);
mail.Attachments.Add(images);
//I tried this and the below method with no success
mail.Attachments.Add(Directory.GetFiles(file));
}
SmtpServer.Credentials = new System.Net.NetworkCredential("******@****.com", "********");
SmtpServer.EnableSsl = false;
SmtpServer.Host = "*****-1";
SmtpServer.Send(mail);
}
}
}
}
ClearScreenCaptures();
}
任何帮助将不胜感激。谢谢!
编辑:感谢您提出建议的相关问题,但是我知道如何添加附件。我的问题特别是如何使用文件名列表来执行此操作。不过谢谢你!
答案 0 :(得分:0)
Directory.GetFiles(file);
返回一个字符串数组,您需要创建一个Attachment对象。像这样:
var attachment = new Attachment(filePath));
答案 1 :(得分:0)
尝试一下
Directory.GetFiles(file).ToList()
.ForEach(t => x.Attachments.Add(new Attachment(t)));