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