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:
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);
}
Le code est exécuté dans une application ASP.NET. Le serveur SMTP est donc enregistré dans le web.config.

En clair, si j'utilise la ligne suivante :
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"));
A la réception du mail, le nom de la pièce jointe est devenu: =_utf-8_B_RMOpZmVuc2Ugb3JhbGUgZHUgcmFwcG9y.dat.
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
email.Attachments.Add(new Attachment(@"D:\Temp\test.docx"));
La pièce jointe est tout-à-fait lisible.

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