Pages

2009-10-18

Email寄送的整合類別 - MailClient

.NET下要寄送Email,肯定最常用的是System.Net.Mail命名空間下的MailMessage + SmtpClient類別。
MailMessage是處理郵件內容,需要處理一大堆User輸入的To/CC/Bcc郵址格式判讀、唯一性、防錯例外,
MailBody內容宜讀取獨立範本html檔,使用Macro巨集變數替代,方便日後郵件內容維護。

SmtpClient的重點在於了解Reply Credential (轉寄授權)的方式,可參考以下文章:
http://www.cnblogs.com/hwade/archive/2007/11/28/976026.html
筆者對Mail伺服器管理稍有經驗,知道SMTP的相關限制(Session數量)及存取方式
因此建立了數個UseXX?Credential(),使用時很清楚SMTP認證的方式。

在附件(Attachment)的處理上,除了寄檔外,也該具有Embedded Images圖片內嵌功能。
在電子報的應用裏,相關的信件Links也要由相對網址變成絕對網址。

很多Email寄送的議題需要考量+經驗,為此我製作了一個MailClient整合性類別,
儘量直通底層的物件屬性而不另建立變數複本(以免同步上有問題),
以下的語法範例可勾勒出一種簡易卻延伸性廣的Design Pattern。

SNAGHTML118d110c

No comments: