Bonjour,
Je rencontre un problème lorsque j'envoie une pièce jointe dans un e-mail à partir d'un code C#. L'e-mail s'envoie correctement mais lorsque je le consulte (dans Outlook ou tout autre client mail) la pièce jointe a changé de nom (commence par "=_UTF-8_B_" et porte l'extension ".dat") et est illisible.
Voici le code que j'utilise pour envoyer mon e-mail:
Le code est exécuté dans une application ASP.NET. Le serveur SMTP est donc enregistré dans le web.config.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 try { using (MailMessage email = new MailMessage()) { // Création du mail MailAddress expediteur = new MailAddress("noreply@hotmail.com", "Seb"); MailAddress destinataire = new MailAddress("noreply@hotmail.com"); email.Sender = expediteur; email.From = expediteur; email.To.Add(destinataire); email.Subject = "Test pièce jointe"; email.Body = "Hello world."; email.IsBodyHtml = false; // Ouverture et ajout de la pièce jointe email.Attachments.Add(new Attachment(@"D:\Temp\Défense orale du rapport de stage SJA 2011.docx")); // Envoi SmtpClient smtp = new SmtpClient(); smtp.Send(email); } lInfo.Text = "E-mail envoyé!"; } catch (Exception ex) { lInfo.Text = string.Format("Erreur: {0}", ex.Message); }
En clair, si j'utilise la ligne suivante :
A la réception du mail, le nom de la pièce jointe est devenu: =_utf-8_B_RMOpZmVuc2Ugb3JhbGUgZHUgcmFwcG9y.dat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part email.Attachments.Add(new Attachment(@"D:\Temp\Défense orale du rapport de stage SJA 2011.docx"));
De plus, j'ai remarqué que le contenu du fichier a été codé en base 64 (dans la source du mail). Ce qui le rend totalement illisible.
Si, par contre, je renomme le fichier avec un nom plus court :
La pièce jointe est tout-à-fait lisible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part email.Attachments.Add(new Attachment(@"D:\Temp\test.docx"));
Pouvez-vous me dire pourquoi la pièce jointe de l'e-mail devient illisible quand celle-ci porte un nom un peu grand?
Ai-je commis une erreur dans le code d'envoi de l'e-mail?
Merci d'avance pour vos réponses.
PS: je ne pense pas que le problème provienne de notre serveur SMTP car, si j'envoie ma pièce jointe via Outlook, tout se passe correctement.
Config:
Windows 7
Framework 4
Visual Studio 2010
Partager