Отправляю почту:
using System.Net.Mail;
namespace main_cons
{
class Program
{
public void SendMail()
{
SmtpClient client = new SmtpClient();
MailMessage mail = new MailMessage();
client.Host = "SMTP_IP";
client.Credentials = new System.Net.NetworkCredential("ЛОГИН", "ПАРОЛЬ");
System.Net.Mail.Attachment ma =
new System.Net.Mail.Attachment(@"ИМЯ_ФАЙЛА");
mail.Attachments.Add(ma);
mail.Subject = "Test";
mail.To.Add("TO");
mail.From = new MailAddress("FROM");
client.Send(mail);
mail.Attachments.Clear();
mail.Dispose();
}
static void Main(string[] args)
{
try
{
Program p = new Program();
p.SendMail();
GC.Collect();
System.IO.File.Delete(@"ИМЯ_ФАЙЛА");
}
catch (Exception ex)
{
System.Console.Out.WriteLine(ex.Message);
}
}
}
} |
На строке:
System.IO.File.Delete(@"ИМЯ_ФАЙЛА"); |
Получаю ошибку:
The process cannot access the file 'ИМЯ_ФАЙЛА' because it is being used by another process.При этом письмо нормально доходит, но файл нельзя удалить даже вручную из проводника, пока не будет закрыта программа.
Можно это как-нибудь побороть?