2009-06-24 8 views
6

Ich sende Anlagen mit dem System.Net.Mail.SmtpClient in C#.
Die Anlagennamen sind die gleichen wie der Name der Datei ISo legen Sie einen schönen Namen für eine E-Mail-Anlage (System.Net.Mail.SmtpClient) fest

in den Aufsatz Kontruktor
myMail.Attachments.Add(new Attachment(attachmentFileName)); 

Wie würde ich über die Einrichtung eines „schönen“ Namen für die Anlage gehen? Die Namen, die ich derzeit habe, sind im Wesentlichen numerische IDs, die angeben, an welcher Stelle ein Bericht angehängt ist. Meine Benutzer suchen nach etwas freundlicherem wie "results.xls".

Antwort

16

Siehe Attachment.Name Property:

Ruft den MIME-Inhaltstyp Name Wert in der Art zufrieden mit dieser Anlage zugeordnet.

Sie können die Attachment.Name Eigenschaft auf alles, was Sie möchten, festlegen. Im Beispiel in den letzten Link, könnten Sie haben:

// Create the file attachment for this e-mail message. 
Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); 
data.Name = "VeryNiceName.dat"; //(not in original example) 
... 
message.Attachments.Add(data); 
+0

Beat mich dazu! ;-) +1 – Cerebrus

+1

Die Beschreibung SO spiegelt dies nicht wider. (Ja, wenn Sie Ihren Kopf seitwärts drehen und schielen, können Sie dies in der Beschreibung lesen, aber es springt nicht auf Sie) THANKS –

+0

Suchen Sie immer nach "Ruft oder setzt" in Eigenschaften. – gimel

1

Speichern Sie den Anhang in den temporären Ordner mit dem gewünschten Namen und hängen Sie ihn an. Vergessen Sie nicht, es nach dem Senden der E-Mail zu löschen, damit der Temp-Ordner nicht zu groß wird.

Bearbeiten: Die akzeptierte Antwort ist viel besser, aber ich werde dies hier für andere, die auf dem gleichen Gedankenpfad gehen und sehen, wie falsch es ist.

+0

Das fühlt sich einfach "dirty" . Es ist, was ich ursprünglich einer Mitarbeiterin vorgeschlagen habe, aber ihr Kommentar war: "Es gibt einen besseren Weg" –

0

 
You can use this constructor for Attachment