2009-01-28 88 views
2

用戶下訂單後,我必須發送詳細的電子郵件信息,包含訂單詳細信息,付款說明,一些額外的文字等。用asp.net創建複雜html電子郵件的最佳方法,怎麼樣?

我想創建格式良好的HTML電子郵件。

現在我發現了兩個選項:

  • 一塊手動創建片,通過字符串,它是太麻煩了字符串,
  • 創建實際的aspx頁面和裝訂數據,然後渲染頁面的html和作爲電子郵件正文發送。

這第二個選項是更直觀,更容易除了實現:

  • 我不知道如何實際加載和渲染網頁,我知道如何與ASCX做
  • 這似乎實例化頁面和渲染它的大部分開銷

如何加載頁面並進行渲染?你對此任務有其他想法或建議嗎?

回答

2

就我個人而言,我想要使用一個模板,無論是在數據庫中,或作爲一個文件被加載。這個模板將包含HTML中大部分電子郵件的內容,其中可以用內容替換標記。

ex。

<b>Receipt for order # [[ordernum]]</b> 

這樣,我可以用簡單的字符串替換到dymanic到電子郵件的地方,而不必在每次需要發送的時間來構建整個電子郵件。

+0

毫無疑問,將工作和我已經使用這個方法簡單的電子郵件,但在被替換數據的情況下是非常動態或檢索從數據庫中,它可能是最好使用一個ASPX資源本身。 – Cerebrus 2009-01-28 15:36:28

3

嗯,國際海事組織,你的基本問題相當於「我如何將ASPX資源轉換爲HTML字符串以傳遞給MailMessage主體屬性?」

您可以簡單地通過使用WebRequest到ASPX URL並將該響應讀取到Stream中。然後,只需將該流讀入一個字符串,即可解決您的主要問題。

編輯:這是一個article,說明了這個概念。

0

嘗試使用存儲在.NET字符串資源文件中的模板。在這條線上,這也將使本地化變得更容易。

1

在類似情況下,我在我的數據庫中存儲模板電子郵件消息,以便使用我們軟件的人員可以修改消息。它是由用戶使用Telerik的在線HTML編輯器控件創建的。在此消息中,我支持幾個「mailmerge」類型字段,它們都具有{FirstName},{LastName}等模式。

當發送消息時,我從數據庫中提取格式化文本,字符串替換以填充模板中的任何插槽,然後發送它。我猜想關鍵是我知道這條消息是HTML格式的,因爲Telerik控件有助於確保它是如此。但是,沒有理由不能創建HTML,然後保存它以備後用。

.aspx頁面路由?我只是不會這樣做。這是過度殺傷,並沒有提供任何優勢。

相關問題