j'utilise System.Net.Mail pour l'envoi de courrier en asp.net .. comment supprimer le fichier joint après qu'il est envoyé comme courrier pièce jointe .. i essayé d'utiliser la méthode File.Delete .. mais Je reçois cette erreur .. le processus ne peut pas accéder au chemin du fichier \ fun.jpg 'parce qu'il est utilisé par un autre processus. mercifichier pièce jointe suppression
Répondre
Éliminer le MailMessage lorsque vous avez terminé avec elle. Il a toujours un verrou sur le fichier que vous avez ajouté en pièce jointe jusqu'à ce que vous l'ayez fait.
var filePath = "C:\\path\\to\\file.txt";
var smtpClient = new SmtpClient("mailhost");
using (var message = new MailMessage())
{
message.To.Add("[email protected]");
message.From = new MailAddress("[email protected]");
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));
Sortie: Faux
Je suppose que si vous avez encore quelque chose de verrouillage du fichier après avoir disposé le message, que vous avez probablement un autre verrou sur le fichier, mais sans code, nous ne pouvons pas aider toi.
Vous ne pouvez pas supprimer un fichier joint après avoir envoyé le mail.Avant d'envoyer, vous pouvez supprimer.
Ce que l'erreur dit, le chemin que vous avez mentionné utilise un autre processus. Notez que nous avons créé la pièce jointe à partir de MemoryStream et que nous avons nommé la pièce jointe comme nous le souhaitons. Le nom de la pièce jointe dans le deuxième paramètre est le nom du fichier dans l'e-mail, pas le nom sur le disque dur du système local. En fait, la pièce jointe ne va jamais sur le disque dur local. Le troisième paramètre est le type Mime de la pièce jointe, dans notre cas c'est du texte.
Edit: use Dispose() the mail
L'extension de la classe MailMessage est une bonne façon de résoudre cela et réduire les chances de courir ce problème encore ...
class MyMailMessage : MailMessage, IDisposable
{
private List<string> _tempFiles = new List<string>();
public void Attach(string filename)
{
base.Attachments.Add(new Attachment(filename));
this._tempFiles.add(filename);
}
new public void Dispose()
{
base.Dispose();
this._tempFiles.Foreach(x => File.Delete(x));
}
}
... et rappelez-vous d'utiliser avec une construction « en utilisant » (qui vous devriez utiliser quand même) ...
using(SmtpClient client = GetMySmtpClient())
using(MyMailMessage msd = new MyMailMessage())
{
msg.Attach(filename);
client.send(msg);
}
Vous devez juste jeter l'objet message avant de supprimer le fichier. Par exemple:
Dim message As New MailMessage
message.From = New MailAddress(fromEmail, fromName)
message.Subject = subject
message.CC.Add(toCCEmail)
message.Bcc.Add(toBCCEmail)
Dim attach As Attachment = New Attachment(attachmentPath)
message.Attachments.Add(attach)
message.IsBodyHtml = True
message.Body = body
mailClient.Send(message)
message.Dispose() 'Add this line to dispose the message!
Si votre courrier ont beaucoup Accessoires
List<Attachments> lstAtt = new List<Attachments>();
Attachment att = new Attachment(file);
lstAtt.Add(att);
//finally
foreach(var a in lstAtt)
{
a.Dispose();
}
//delete file
- 1. Pièce jointe Android Gmail
- 2. PHP: taille du fichier de pièce jointe
- 3. Pièce jointe Sharepoint Supprimer Nom du fichier
- 4. Comment envoyer un fichier pièce jointe?
- 5. Comment lire pièce jointe
- 6. Aperçu InfoPath Pièce jointe
- 7. php pièce jointe
- 8. Vérifier la pièce jointe
- 9. postale avec pièce jointe
- 10. view pdf en pièce jointe
- 11. Pièce jointe d'email en PHP?
- 12. formulaire de pièce jointe C#
- 13. problème avec la pièce jointe
- 14. Workflow Sharepoint Tâches pièce jointe
- 15. lien vers une pièce jointe
- 16. sp_send_dbmail codage de pièce jointe
- 17. html email avec pièce jointe
- 18. Enregistrement de la pièce jointe
- 19. Accès à la pièce jointe d'événement SharePoint
- 20. ATT00006.dat fichier attaché automatiquement dans la pièce jointe
- 21. PHP mail avec pièce jointe - fichier supplémentaire: partie 1.4
- 22. afficher le fichier csv en pièce jointe vb.net ou C#
- 23. Obtention de la pièce jointe à un objet fichier python
- 24. Envoyer un fichier PDF en pièce jointe par courrier électronique
- 25. serveur Web: retourner une pièce jointe page Web + fichier
- 26. SQL Server SP_SEND_DBMAIL Fichier image en pièce jointe
- 27. Envoyer un fichier en pièce jointe dans l'objectif c
- 28. Problème de pièce jointe d'un fichier e-mail binaire
- 29. RUBY: erreur de pièce jointe Pony email
- 30. Télécharger une pièce jointe en utilisant java
je pense que vous devez disposer les objets d'attachement. – anishMarokey