ASP.NET 2.0發(fā)送電子郵件中存在的問(wèn)題_.Net教程
推薦:ASP.NET 2.0中層次數(shù)據(jù)的處理 數(shù)據(jù)源控件可以同時(shí)暴露平面表格式的或?qū)哟蔚臄?shù)據(jù)。前面演示的SqlDataSource和ObjectDataSource控件都是平面表格式的數(shù)據(jù)源控件。ASP.NET 2.0還包含兩個(gè)層次數(shù)據(jù)源控件:用于連接X(jué)ML文件的X
在新發(fā)行的ASP.NET 2.0版本中,微軟不再建議使用System.Web.Mail命名空間而代之以新的System.Net.Mail命名空間。在這個(gè)新庫(kù)中引入了許多新特征,但是在發(fā)送郵件的方式方面也相應(yīng)地帶入了一些小錯(cuò)誤。
一、 發(fā)送郵件
在詳細(xì)討論這些小錯(cuò)誤之前,讓我們先看一段示例代碼(我們假定你已經(jīng)在文件開(kāi)始添加了"using System.Net.Mail"):
MailMessage msg = new MailMessage();
msg.From = new MailAddress("address@domain.com", "Person's Name");
msg.To.Add(new MailAddress("destination@domain.com", "Addressee's Name");
msg.To.Add(new MailAddress("destination2@domain.com", "Addressee 2's Name");
msg.Subject = "Message Subject";
msg.Body = "Mail body content";
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
SmtpClient c = new SmtpClient("mailserver.domain.com");
c.Send(msg);
上面的代碼與以前版本中的實(shí)現(xiàn)差不太多,僅是在指定消息時(shí)作了一些小的改動(dòng)。不必自己來(lái)構(gòu)建一個(gè)地址,你完全可以讓系統(tǒng)為你代勞。如果你指定一個(gè)電子郵件地址和一個(gè)名字,它將自動(dòng)地在消息中顯示如下內(nèi)容:
"Person's Name" <destination@domain.com>
這正是一個(gè)電子郵件地址的"正確"格式。當(dāng)然,你可以進(jìn)一步把多個(gè)地址添加到To,CC和BCC集合中,其方式與上面完全相同。通過(guò)這種編程方式來(lái)實(shí)現(xiàn)發(fā)送大量消息要比分別發(fā)送每個(gè)消息要容易得多了-只需要把多個(gè)地址添加到BCC屬性即可實(shí)現(xiàn)郵件的群發(fā)。
二、 存在的問(wèn)題
現(xiàn)在,我們來(lái)分析一下其中存在的小錯(cuò)誤。
如前面所提及,這個(gè)新的命名空間中帶有一些小錯(cuò)誤。第一個(gè)是,當(dāng)你發(fā)送一封電子郵件時(shí),郵件的頭部信息全部是以小寫(xiě)字母形式添加的。然而,在針對(duì)SMTP郵件RFC的規(guī)范中并沒(méi)有指定郵件頭部應(yīng)該怎樣大寫(xiě);但是,許多垃圾郵件過(guò)濾程序卻限制了頭部沒(méi)有正確大寫(xiě)的電子郵件消息。
另一個(gè)錯(cuò)誤與優(yōu)先權(quán)設(shè)置有關(guān)系-通過(guò)優(yōu)先權(quán)設(shè)置,用戶(hù)可以指定一個(gè)消息在郵件客戶(hù)端的重要程度。由于郵件頭部的這種格式化方式(全部轉(zhuǎn)化為小寫(xiě)),所以,我的郵件程序(Eudora)無(wú)法識(shí)別相應(yīng)的優(yōu)先權(quán)標(biāo)志,因而也就不會(huì)專(zhuān)門(mén)標(biāo)記出此郵件的重要程度。盡管這看上去有些瑣碎,但是轉(zhuǎn)換到新版本的System.Web.Mail以后這看上去并沒(méi)有明顯理由。
所以,我還會(huì)繼續(xù)探討這個(gè)問(wèn)題,如果實(shí)在找不到一個(gè)好的補(bǔ)救辦法,那么我只要回到以前的System.Web.Mail以更有效了解決上面的警告問(wèn)題。
分享:用ASP.NET/C#連接Access和SQL Server數(shù)據(jù)庫(kù)連接Access 首先看一個(gè)例子代碼片斷: 程序代碼: -------------------------------------------------------------------------------- using System.Data; using System.Data.Ole
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶(hù)端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- .Net教程之基于ASP.NET2.0的非HttpModule山寨版MVC框架的實(shí)現(xiàn)
- 如何利用ajax.dll進(jìn)行asp.net ajax開(kāi)發(fā)
- 超簡(jiǎn)單實(shí)現(xiàn) .NET開(kāi)發(fā)類(lèi)似Web Parts的功能
- System.Data.SqlClient.SqlException: 無(wú)法打開(kāi)登錄所請(qǐng)求的數(shù)據(jù)庫(kù)
- CheckBoxList兩列并排編譯為表格顯示具體實(shí)現(xiàn)
- ASP.NET學(xué)習(xí)篇(1)——開(kāi)篇
- 解讀Web.config簡(jiǎn)要配置說(shuō)明
- 解讀ASP.NET網(wǎng)站程序防SQL注入式攻擊方法
- 注意.NET中容易混淆的幾組重要概念
- ASP.NET中后臺(tái)注冊(cè)js腳本使用的方法對(duì)比
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-ASP.NET 2.0發(fā)送電子郵件中存在的問(wèn)題
。