web-dev-qa-db-fra.com

Définir le nom de la pièce jointe au courrier électronique en C #

J'ajoute une pièce jointe comme celle-ci:

System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(AttachmentPath);   
msg.Attachments.Add(attachment);   

Mais je veux le joindre en tant que nom différent, le nom de fichier réel est très long et déroutant, je voudrais qu'il se joigne en tant que "fichier.txt", existe-t-il un moyen facile de le faire sans avoir à faire une copie de la fichier?

43
Tom Gullen

Que diriez-vous:

System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(attachmentPath);
attachment.Name = "file.txt";  // set name here
msg.Attachments.Add(attachment);
72
Kev

Vous devez charger la pièce jointe à partir d'un flux, puis vous pouvez lui donner un nom et un type de média.

var fs = new FileStream("attachmentPath", FileMode.Open);
var attachment = new System.Net.Mail.Attachment(fs, "MyAttachmentName.txt", "text/text");
6
John Oxley