Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#以附件形式发送后删除Smtp文件;因为它';什么在用?_C#_.net_Smtp_Delete File_Smtpclient - Fatal编程技术网

C#以附件形式发送后删除Smtp文件;因为它';什么在用?

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

我在发送带有附件的电子邮件后遇到问题。 在这样一次发送之后,我想删除此文件,但该进程被拒绝,因为另一个进程正在使用我要删除的文件

这是我得到的信息: “进程无法访问文件'C:\Users\x\AppData\Roaming\ipconfig.txt',因为其他进程正在使用该文件。”

我有一些代码:

    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();