2011-09-22 75 views
1

是否可以發送部分頁面,將IFrame的內容或面板的內容稱爲電子郵件中的附件?通過電子郵件發送部分頁面作爲文件附件Asp.Net

我使用動態尺寸標註動態創建制造圖紙頁面。我希望用戶能夠點擊電子郵件按鈕並將其作爲附件發送給供應商。

+0

因此,您想要將.htm文件附加到電子郵件併發送它們嗎? 「製造圖紙頁面」聽起來有點像你想發送圖像文件。 –

+0

那麼我也有標籤和表格圍繞圖像和dipslays相應的尺寸數據。該數據按用戶選擇進行動態更新。 – TroyS

+0

然後,我需要將所有這些轉換爲文件並在用戶單擊發送按鈕時發送給供應商。 – TroyS

回答

1

您可以使用Server.Execute執行頁面,在TextWriter中捕獲輸出,然後使用該字符串爲您的電子郵件構建html附件。 server.execute仍然在當前的用戶上下文中執行,所以如果你將它們的選擇放在Session中,那麼構建nexessary html就足夠簡單了。也有一些缺陷,但:

  • 如果you're鏈接到的圖片,並使用HREF中,要麼讓那些絕對鏈接或使用基href標記在你的頭上
  • 我倒是要小心發送HTML附件:垃圾郵件過濾器和病毒掃描程序可能會阻止它們。

祝你好運!

+0

感謝您的及時答覆。我會嘗試。我也有一個由創新的pdf創作者(尚未嘗試過)。我想知道是否可以將pdf保存到服務器,然後作爲附件發送。這會起作用嗎? – TroyS

+0

你的意思是PDF格式轉換器的創新html?我用過那個,它對我很好。 基本上你會採取的HTML(你仍然需要基礎的HREF),並將其直接送入PDF生成器。您可能不需要保存到硬盤驅動器:我認爲您可以直接保存到(內存)流,然後使用該流作爲附件。 –

+0

是的,創新的HTML到PDF轉換器是我的。尚未成功使用它。你會碰巧有一個代碼片段會雅?那太好了。謝謝。 – TroyS

0
  Winnovative.WnvHtmlConvert.PdfConverter p = new Winnovative.WnvHtmlConvert.PdfConverter(); 

      p.LicenseKey = "NotPostingTHat"; 
      p.PdfDocumentOptions.GenerateSelectablePdf = true; 
      /* 
      ... Setting a bunch of options ... 
      */ 
      p.PdfFooterOptions.DrawFooterLine = false; 

      System.IO.TextWriter writer = new System.IO.StringWriter(); 

      string html = ""; 
      string pdfType = GetPdfType(); 

      switch (pdfType.ToUpper()) 
      { 
       case "THEME": 
        HttpContext.Current.Server.Execute("~/Pdf/Theme.aspx", writer); 
        break; 
       /* More cases */ 
      } 

      html = writer.ToString(); 

      if (html.Length > 0) 
      { 
       byte[] bytes = p.GetPdfBytesFromHtmlString(html); 
       context.Response.ContentType = "application/pdf"; 
       context.Response.OutputStream.Write(bytes, 0, bytes.Length); 
      } 
      else 
      { 
       context.Response.ContentType = "text/plain"; 
       context.Response.Write("No data found!"); 

       foreach (string item in context.Request.Form.AllKeys) 
        context.Response.Write(String.Format("{0}: {1}\n", new object[] { item, context.Request.Form[item] })); 
      } 

沒有什麼不可以。這是在.ashx中。

Menno

+0

再次感謝您。我肯定會將其納入我的網絡應用程序。 – TroyS

相關問題