C#以附件形式发送后删除Smtp文件;因为它';什么在用?
我在发送带有附件的电子邮件后遇到问题。 在这样一次发送之后,我想删除此文件,但该进程被拒绝,因为另一个进程正在使用我要删除的文件 这是我得到的信息: “进程无法访问文件'C:\Users\x\AppData\Roaming\ipconfig.txt',因为其他进程正在使用该文件。” 我有一些代码:C#以附件形式发送后删除Smtp文件;因为它';什么在用?,c#,.net,smtp,delete-file,smtpclient,C#,.net,Smtp,Delete File,Smtpclient,我在发送带有附件的电子邮件后遇到问题。 在这样一次发送之后,我想删除此文件,但该进程被拒绝,因为另一个进程正在使用我要删除的文件 这是我得到的信息: “进程无法访问文件'C:\Users\x\AppData\Roaming\ipconfig.txt',因为其他进程正在使用该文件。” 我有一些代码: public static void SendAnEmail(string host, string username, string password, string mailTo, str
public static void SendAnEmail(string host, string username, string password, string mailTo, string subject, string body, List<string> attachmentsFileNames)
{
SmtpClient client = new SmtpClient();
client.Port = 587;
client.Host = host;
client.EnableSsl = true;
client.Timeout = 60000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new System.Net.NetworkCredential(username, password);
MailMessage mailMessage = new MailMessage(username, mailTo, subject, body);
foreach(string singleAttachmentFileName in attachmentsFileNames)
{
Attachment attachment = new Attachment(singleAttachmentFileName, "text/plain");
mailMessage.Attachments.Add(attachment);
}
mailMessage.BodyEncoding = UTF8Encoding.UTF8;
mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
}
我想建议我如何解决这个问题,并在发送一封带有附件的电子邮件后-删除这些附件
如果有什么不清楚,请问我
编辑:
当然,我使用的是C#,框架4.5,WPF。目标平台是Windows,用于编程的环境是Visual Studio 2013:)删除之前,必须执行以下操作:
mailMessage.Attachments.Dispose();
client.Dispose();
这对我很有用。请回答您的问题,以澄清语言和平台。有人看到解决方案了吗?请看一看,因为这是不寻常的情况。也许我没有以最清晰的方式指出情况,但我想你能理解情况是什么?对该文件的访问被拒绝,我无法将其删除,并且只有在我发送电子邮件时,才将该文件作为附件行发送,然后我才想发送。我已将和标记添加到您的问题中。如果这些不正确,请编辑。如果没有有用的标签,您几乎肯定不会得到任何有用的答案。在这里添加评论只能粗略估计到我;我对Windows一无所知。我找不到给你的私人消息按钮,所以我想感谢你在这里的支持-谢谢:)没有私人消息,但是谢谢。如果您想提高我在这里的声誉,请访问我的个人资料,并找到一些您想要提升的东西,我们将不胜感激。(-:
mailMessage.Attachments.Dispose();
client.Dispose();