c# - 删除附件

标签 c# email-attachments

我正在使用 System.Net.Mail 在 asp.net 中发送邮件。 作为附件邮件发送后如何删除附件文件.. 我尝试使用 File.Delete 方法..但我收到此错误.. 该进程无法访问文件路径\fun.jpg',因为它正被另一个进程使用。 谢谢

最佳答案

处理完 MailMessage 后将其丢弃。 在您添加为附件之前,它仍然会锁定您添加的文件。

var filePath = "C:\\path\\to\\file.txt";
var smtpClient = new SmtpClient("mailhost");
using (var message = new MailMessage())
{
    message.To.Add("to@domain.com");
    message.From = new MailAddress("from@domain.com");
    message.Subject = "Test";
    message.SubjectEncoding = Encoding.UTF8;
    message.Body = "Test " + DateTime.Now;
    message.Attachments.Add(new Attachment(filePath));
}
if (File.Exists(filePath)) File.Delete(filePath);
Console.WriteLine(File.Exists(filePath));

输出:假

我想如果在处理消息后您仍然有锁定文件的东西,那么您可能对文件有另一个锁定,但没有代码,我们无法帮助您。

关于c# - 删除附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2857107/

相关文章:

带有 PDF 的 PHPMailer AddStringAttachment

email - PHP 发送带有文件附件的电子邮件 - 电子邮件根本不发送

android - 如何在 Android 中发送带有文件附件的电子邮件

android - 在 Android 的电子邮件附件中显示零字节 pdf 文件

php 发送带有 PDF 附件的电子邮件

c# - 轮询类应该是静态的

c# - 使用 LinqDataSource 格式化问题的下拉列表

c# - 如何为 ObjectListView 创建动态模型

c# - 导出可运行的应用程序

c# - 当我在 VS 2010 中按 F5 时,是否可以同时在多个浏览器中进行调试?