2009-06-24 11 views
6

Estoy enviando archivos adjuntos usando System.Net.Mail.SmtpClient en C#.
Los nombres de los adjuntos son los mismos que el nombre del archivo que pase al constructor apegoCómo establecer un buen nombre para un archivo adjunto de correo electrónico (System.Net.Mail.SmtpClient)

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

¿Cómo hago para el establecimiento de un "buen" nombre para el archivo adjunto? Los nombres que tengo actualmente son básicamente identificadores numéricos que indican qué ocurrencia de un informe se adjunta. Mis usuarios están buscando algo más amigable como "results.xls".

Respuesta

16

Ver Attachment.Name Property:

Obtiene o establece el valor de nombre de tipo de contenido MIME en el tipo de contenido asociado con este archivo adjunto.

Puede establecer la propiedad Attachment.Name lo que usted quiera. En el ejemplo en el último eslabón, usted podría tener:

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

¡Suéltame! ;-) +1 – Cerebrus

+1

La descripción SO no refleja esto. (Sí, si gira la cabeza hacia un lado y entrecierra los ojos puede leer esto en la descripción, pero no salta hacia usted) GRACIAS –

+0

Siempre busque "Obtiene o establece" en las propiedades. – gimel

1

Guarde el archivo adjunto a la carpeta temporal con el nombre deseado y luego conéctelo. No olvides eliminarlo después de enviar el correo electrónico para que la carpeta temporal no crezca demasiado.

Editar: La respuesta aceptada es mucho mejor, pero dejaré esto aquí para otros que sigan la misma línea de pensamiento y vean lo equivocado que está.

+0

que sólo se siente "sucio" . Es lo que originalmente propuse a un compañero de trabajo, pero su comentario fue: "DEBE haber una mejor manera" –

0

 
You can use this constructor for Attachment 

Cuestiones relacionadas