客戶最近有一個需求,大致的意思是提供一個 word文檔,讓其作為一個模板,在發送郵件的時候能夠實現按照這個模板的樣式和內容,替換其中 的一些欄位,作為郵件的內容發給收件人。這個需求最大的問題就是在於這些需要替換的變數的存儲方式,是在資料庫中存儲還是在xml中存儲,或者是其他的存儲方式,我最終選擇了在 ...
客戶最近有一個需求,大致的意思是提供一個 word文檔,讓其作為一個模板,在發送郵件的時候能夠實現按照這個模板的樣式和內容,替換其中 的一些欄位,作為郵件的內容發給收件人。這個需求最大的問題就是在於這些需要替換的變數的存儲方式,是在資料庫中存儲還是在xml中存儲,或者是其他的存儲方式,我最終選擇了在資料庫中存儲,因為這些變數基本比較固定,並且後期維護起來比較容易。下麵是大致的實現的步驟
1、在資料庫中新建一個存儲附件的表MailTemplate,包含主鍵,模板名稱,描述、模板url等欄位,
2、將客戶給的word轉換成html格式的文件,記得調整html的編碼格式為charset=utf-8",否則會出現亂碼 在html文件中編輯樣式、變數替換標識,然後將html放置在固定的文件夾中,在MailTemplate表中添加一條記錄
3、在資料庫中添加變數表MailTemplate_value,包含主鍵、MailTemplateID,變數名稱、變數值、排序值、描述等欄位
4、在模板變數表中添加對應的MailTemplateID,變數名稱,變數值,排序值等信息(排序值用來和html模板中變數的順序保持一致),
5、從資料庫中取對應的變數名稱及對應的變數值,後臺先取到html文件的內容,然後用raplace方法將對應的變數進行替換,替換後的文本作為文件的正文內容
6、聲明發送郵件的類,將郵件所需的信息在該類中補全,然後就可以用上面提供的方法發送定義好的模板了
優點該思路使變數的維護比較簡單,可以直接在前臺進行操作,可以定義多個模板,但是對需要替換變數的順序要求比較高,不能隨意的定義變數的順序,而且如果需要保留一個模板的歷史變數的話,這種思路就無法滿足了,需要額外的一些工作來滿足這種需求。