2012-08-09 134 views
1

我到處搜索,但沒有找到任何解決方案。 問題是:我試圖從ASP.NET MVC3應用程序發送帶有附件的電子郵件。問題是:附件是(或者應該是)用iTextSharp創建的pdf文件。我已經有一個返回ActionResult的Controller的方法,並且這個方法產生一個pdf響應。問題是:如何從這個ActionResult獲取文件?使用附件發送帶有ASP.NET MVC3的電子郵件

+0

這不是特定於MVC。將pdf生成代碼封裝在一個方法中並使用它來獲取附件。在C#中發送電子郵件有很多例子。 – Shyju

+1

也許這是更好的解決方案。 –

回答

1

移動你的代碼生成PDF FIKE流的方法,你可以重新使用在很多地方,並使用創建附件

public Byte[] GetGeneratedPDF(string someParameter) 
{ 
    //Do your magic to create the PDF and return the byte array 

} 

現在,當你可以調用這個方法來創建Attachement

MailMessage msg = new MailMessage(); 
MemoryStream stream = new MemoryStream(GetGeneratedPDF("hi")); 
Attachment att1= new Attachment(stream, "stack123.pdf"); 
msg.Attachments.Add(att1); 
0

只要看看您在「PDF生成操作方法」中使用相同的邏輯和Stream(或任何iTextSharp的收益)作爲attatchment添加到您的郵箱:

message.Attachments.Add(new Attachment(stream, "name", "mimeType")); 
+0

我想這個解決方案,但從ActionResult對象「提取」流似乎是不可能的。 –

+0

不,不是來自ActionResult,而是來自PDF生成器。看看Shyju的回答,這應該說清楚。 – philipproplesch

相關問題