2010-07-20 8 views
5

J'ai un code qui génère un fichier pdf et je veux l'envoyer en pièce jointe à un email.Comment envoyer un fichier pdf généré en pièce jointe dans un email à partir de C#?

je ce code:

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

et j'ai ce code pour envoyer une pièce jointe

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

Comment puis-je convertir un FileContentResult dans une pièce jointe objet?

+0

Vous voulez probablement utiliser des trucs la propriété fileContents de votre instance FileContentResult dans un MemoryStream et envoyer . Le bit de la mémoire est montré ici http://stackoverflow.com/questions/1196059/itextsharp-sending-in-memory-pdf-in-an-email-attachment – Tahbaza

Répondre

8

Avez-vous essayé d'utiliser ceci: Attachment Constructor (Stream, ContentType)?

Quelque chose comme

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 - ce code ne compile pas. J'ai renommé cette variable ci-dessus. cette ligne n'est pas reconnue: ContentType ct = stream.ContentType; – leora

+0

@ooo: Vous avez besoin de 'using System.IO', avez-vous cela? Également le code édité comme stream.ContentType était apparemment chaîne. –

+0

@Moron - cette ligne n'est pas reconnue: ContentType ct = stream.ContentType; – leora

1

Je suis seulement 7 ans de retard, mais voici votre réponse:

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

up-vote pour l'humour seul! – sondlerd

Questions connexes