本文就是介紹這么一個控件,這個控件增加了一些常見HTML格式的工具欄操作,并且改良支持Win7系統下的內容編輯(一般WebBrowser包裝類,在Win7下內容會變得不可編輯),本控件不會有這個問題。另外,一般WebBrowser需要客戶端有Microsoft.MSHTML.dll,這個文件7M多,一般開發的機器上會有,但普通用戶的電腦就不一定有這個文件,而且這個文件很大,非常不適合軟件的部署。本控件使用WindowsLive.Writer.Interop.Mshtml和WindowsLive.Writer.Mshtml兩個小文件來替代Microsoft.MSHTML.dll這個龐然大物的dll。
下面是一個在Winform開發框架中用于意見反饋的場景,里面可以使用豐富的HTML格式,可以插入圖片等操作,如下所示。
打開問題反饋出現下面的HTML內容編輯界面
由于我是把反饋信息作為郵件發送的,因此,插入的本地圖片,也會作為嵌入內容寫入到郵件當中,在郵件內容中插入嵌入圖片是一個有點技術含量的工作,不同于一般的郵件附件,他是把圖片字節寫在郵件的同時,也同時修改郵件內容的圖片應用為cid:***這樣的路徑格式。收到的郵件如下所示。
1、發送郵件的輔助類 EmailHelper。
實現效果
1) 本輔助類主要是用來方便實現發送郵件操作,可以發送附件、嵌入圖片、HTML等內容郵件。使用底層SMTP協議指令進行發送,成功率較高。
2)郵件發送可以用在客戶反饋,信息推廣,客戶溝通,員工交流等方面業務需要。
實現代碼
1)輔助類提供的方法源碼如下所示: ..............省略..............
2)輔助類EmailHelper的使用例子代碼如下所示
EmailHelper email = new EmailHelper("smtp.163.com", "wuhuacong2013@163.com", "password"); email.Subject = "伍華聰的普通測試郵件"; email.Body = string.Format("測試郵件正文內容"); email.IsHtml = true; email.From = "wuhuacong2013@163.com"; email.FromName = "wuhuacong2013"; email.AddRecipient("6966254@qq.com"); try { bool success = email.SendEmail(); MessageUtil.ShowTips(success ? "發送成功" : "發送失敗"); } catch (Exception ex) { MessageUtil.ShowError(ex.Message); }
3)如果使用發送附件、發送嵌入圖片(正文中有圖片顯示內容的)方式,則例子代碼如下所示。
EmailHelper email = new EmailHelper("smtp.163.com", "wuhuacong2013@163.com", "password"); email.Subject = "伍華聰的圖片附件測試郵件"; string embedFile = Path.Combine(Application.StartupPath, "cityroad.jpg"); email.Body = string.Format("測試郵件正文內容<img src=\"{0}\" title='測試圖片' /> ", embedFile); email.IsHtml = true; email.From = "wuhuacong2013@163.com"; email.FromName = "wuhuacong2013"; email.AddRecipient("6966254@qq.com"); email.AddAttachment(Path.Combine(Application.StartupPath, "ringin.wav"));//.AddAttachment("C:\\test.txt"); try { bool success = email.SendEmail(); MessageUtil.ShowTips(success ? "發送成功" : "發送失敗"); } catch (Exception ex) { MessageUtil.ShowError(ex.Message); }
其實該控件還可以改造成HTML內容顯示控件,不過由于涉及要將服務器的圖片文件下載并保存到一個目錄,并修改HTML內容中圖片的路徑以便進行顯示,修改內容的時候,還得記住那些圖片是原有的,新增的圖片才提交到服務器即可,不過這樣就會搞得比較復雜一點。大家如果有好的建議可以討論下。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com