2009-06-24 18 views
6

Sto inviando allegati utilizzando System.Net.Mail.SmtpClient in C#.
I nomi degli allegati sono lo stesso come il nome del file di passo al costruttore attaccamentoCome impostare un nome piacevole per un allegato di posta elettronica (System.Net.Mail.SmtpClient)

myMail.Attachments.Add(new Attachment(attachmentFileName)); 

Come posso fare per impostare una "bella" nome per l'attacco? I nomi che attualmente possiedo sono in pratica degli ID numerici che indicano quale occorrenza di un rapporto è allegata. I miei utenti cercano qualcosa di più amichevole come "results.xls".

risposta

16

Vedi Attachment.Name Property:

Ottiene o imposta il valore del nome tipo di contenuto MIME nel tipo di contenuto associata a questo allegato.

Puoi impostare la proprietà Attachment.Name in tutto ciò che ti piace. Nell'esempio all'interno l'ultimo anello, si potrebbe avere:

// 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

Mi picchia! ;-) +1 – Cerebrus

+1

La descrizione SO non riflette questo. (Sì, se giri la testa di lato e strizza gli occhi puoi leggere questo nella descrizione, ma non ti salta addosso) GRAZIE –

+0

Cerca sempre "Ottiene o imposta" nelle proprietà. – gimel

1

Salvare l'allegato nella cartella temporanea con il nome desiderato, quindi collegarlo. Non dimenticare di eliminarlo dopo aver inviato l'e-mail in modo che la cartella temporanea non cresca troppo.

Modifica: La risposta accettata è molto meglio ma lascerò questo qui per gli altri che scendono lungo lo stesso percorso di pensiero e vedono quanto sia sbagliato.

+0

che si sente solo "sporco" . È quello che ho proposto inizialmente a un collaboratore, ma il loro commento era "C'è GOT per essere un modo migliore" –

0

 
You can use this constructor for Attachment 

Problemi correlati