2010-07-20 22 views
5

tengo un código que genera un archivo pdf y quiero enviarlo como un archivo adjunto a un correo electrónico.¿Cómo enviar el archivo pdf generado como archivo adjunto en el correo electrónico desde C#?

tengo este código:

 FileContentResult fileContentResult = File(fileName, "application/pdf", "file.pdf"); 

y tengo este código para enviar por correo electrónico un archivo adjunto

 Attachment a = new Attachment(); 
     sender.SendMail("[email protected]", "[email protected]", "subject", "Body", a); 

¿Cómo se convierte un FileContentResult en un objeto adjuntos?

+0

Es posible que desee utilizar material propiedad FileContents de la instancia FileContentResult en un MemoryStream y enviar . El bit de flujo de memoria se muestra aquí http://stackoverflow.com/questions/1196059/itextsharp-sending-in-memory-pdf-in-an-email-attachment – Tahbaza

Respuesta

8

¿Ha intentado utilizar esto: Attachment Constructor (Stream, ContentType)?

Algo así como

MemoryStream ms = new MemoryStream(fileContentResult.FileContents); 
// Create an in-memory System.IO.Stream 

ContentType ct = new ContentType(fileContentResult.ContentType); 

Attachment a = new Attachment(ms, ct); 
+0

@Moron: este código no se compila. he cambiado el nombre de esa variable arriba. esta línea no se reconoce: ContentType ct = stream.ContentType; – leora

+0

@ooo: necesitas 'usar System.IO', ¿lo tienes? También código editado como stream.ContentType fue aparentemente string. –

+0

@Moron: esta línea no se reconoce: ContentType ct = stream.ContentType; – leora

1

Soy sólo 7 años de retraso, pero aquí está la respuesta:

Attachment a = new Attachment(fileName, "application/pdf"); 
sender.SendMail("[email protected]", "[email protected]", "subject", "Body", a); 
+0

¡Vota por el humor solo! – sondlerd

Cuestiones relacionadas