我正在编写一个简单的电子邮件助手类,它将由Windows服务调用。当我测试时,电子邮件附件没有与剩下的电子邮件一起发送。
mailAttachmentFilePath是一个ArrayList(仅用于说明),mail表示MailMessage类。
if (mailAttachmentFilePath.Count > 0)
{
foreach (string file in mailAttachmentFilePath)
{
Attachment data = new Attachment(file);
mail.Attachments.Add(data);
data.Dispose();
}
}
我确信我错过了一些东西,但我不知道它是什么......
答案 0 :(得分:5)
在发送电子邮件后执行data.Dispose():D。
答案 1 :(得分:2)
删除data.Dispose()。附件是通过引用添加的,因此当您调用dispose时,它实际上是释放附加文件。你也不需要if语句。试试这个:
foreach (string file in mailAttachmentFilePath)
{
Attachment data = new Attachment(file);
mail.Attachments.Add(data);
}