999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

用ASP.NET設計定時郵件群發系統

2008-12-31 00:00:00
考試周刊 2008年18期

摘 要:定時郵件群發系統由郵件列表、郵件發送、定時觸發送幾部分組成,利用System.Net.Mail類實現郵件發送,利用Application_Start事件和System.Timers類實現定時發送。ASP.NET作為先進的WEB開發工具被廣泛使用,強大的功能保證了功能實現的簡單性、系統的穩定性。

關鍵詞:ASP.NET 郵件 郵件群發 郵件列表

隨著信息技術的發展,因特網在人們的日常工作和生活中發揮著越來越大的作用。電子郵件作為因特網的重要功能之一,并利用電子郵件的快速、廉價、便于存儲、傳遞多媒體信息、便于多向交流、方便保密等獨特優點,在個項工作中發揮重要作用,如在BBS、交易等服務網站得到了廣泛應用。如果需要向多方用戶發送相同類型的郵件時,人工每份逐一發送不但工作量很大,而且不能達到及時發送的效果。所以群發就非常必要,讓每個用戶都能及時得到最新的信息。

一、郵件列表的作用和工作方式

郵件列表就是網站或者機構為了及時通知信息給相關用戶,將這些用戶的電子郵件保存,并且在有信息需要發送的時候將信息分別發送給所有用戶。表面上,郵件列表和發送電子郵件的時候使用的“附送”、“密送”差不多,基本沒什么差別,其實,它們還是有差別的:郵件列表具有明確的發送目的,發送郵件列表就是為了發送特定信息給特定用戶;郵件列表接受人不能取得其他接受人的資料,這一點是郵件列表和電子郵件附送的最大區別。發現在郵件的“附送”欄有很多其他用戶的郵件地址,這就是通過“附送”方式將郵件發送給一系列用戶;而通過郵件列表發送的郵件,用戶感覺就是發送人單獨發送給用戶的,不能看見其他用戶的信息。這樣,我們就可以知道郵件列表的工作方式其實是將每個用戶的電子郵件取出,然后逐個發送相同的信息。

二、郵件列表的設計

郵件列表的所有電子郵件地址必須保存在數據庫表中或一個文件中,這樣可以很方便地對郵件地址記錄進行管理。假設存入表userE-mail中,表結構為標識號ID、郵件地址E-mail等字段。利用DataSet讀取郵件地址E-mail。

private static void EMailList()

{

DataSet ds = new DataSet();

OleDbDataAdapter da = new OleDbDataAdapter(“select id,email from userEmail”,OleDbConnection);

da.Fill(ds);

}

三、郵件發送

一般來講,做ASP的郵件發送系統都是借助第三方開發的組件,如Jmail等,當然你也可以用Windows的自帶的對象CDONTS.NewMail對象來傳送E-mail,這雖然是免費的,但卻十分依賴操作平臺,CDONTS.NewMail對象只存在Windows 200和NT底下,在Windows 95/98底下是沒有這個對象。自從Microsoft公司推出了asp.net(微軟最強的開發語言),利用System.Net.Mail空間,E-mail的發送已經成為WEB程序設計的基本對象,利用MailMessage的to、from、host等屬性和send事件就能簡單實現發送郵件功能。

public Boolean SendMail(string cFrom,string cSmtpServer,string cUserName,string cPassword,string cTo,string cSubject,string cBody)

{

Msg.Sender = new MailAddress(cFrom);//發件地址

Msg.To.Add(cTo);//目的地址

Msg.Subject = cSubject;//標題

Msg.Body = cBody;//內容

Msg.IsBodyHtml = true;//內容發送是否以HTML格式發送,否則以文本格式發送

SmtpClient smtp = new SmtpClient();

smtp.Host = cSmtpServer;

smtp.DeliveryMethod = SmtpDeliveryMethod.Network;

smtp.Credentials = new NetworkCredential(cUserName,cPassword);

smtp.Send(Msg);

}

四、Smtp服務器

Smtp服務器是郵件發送服務器,而現在一些免費郵件提供商是不再提供針對所有郵件提供Smtp服務,在發送郵件的時候,需要驗證用戶信息,因此,不能隨便使用一個Smtp服務器,而必須使用完全免費的Smtp服務器,這樣的服務器現在已經很少了。所以,如果有條件,最好我們自己設置計算機為Smtp服務器,怎樣實現,我們可以下載EasyMail等軟件。第二是郵件發送速度問題,如果Smtp服務器在本地計算機,發送速度很快,基本上不用擔心;如果不是本地服務器,那么發送的時候最好不要一次太多,一是速度問題,二是一次發送太多郵件,Smtp服務器可能認為是垃圾郵件而拒絕服務。

五、郵件定時群發

在ASP.NET開發的系統里面,有時會有需要定時做一件操作的功能,例如發送通知郵件、清理信息等。有些采用了Windows服務的方式,所有的Windows服務都必須寫入注冊表的HKEY_LO-CAL_MACHINE \SYSTEM \CurrentControlSet\Services位置中。但作為一個Web系統需要Windows服務,并且需要修改注冊表,假設需要更新系統還得又要更新服務,這樣就沒有發揮Web系統的優勢。

ASP.NET系統里能怎樣做定時類的功能?利用Global.asax中的Application_Start事件和System.Timers類。Global.asax文件(也稱作ASP.NET應用程序文件)是可選文件,包含用于響應ASP.NET引發的應用程序級別事件的代碼。Global.asax文件駐留在基于ASP.NET的應用程序的根目錄中。在運行時,分析Global.asax文件并將其編譯到一個動態生成的.NET Framework類,該類是從HttpApplication基類派生的。Global.asax文件本身被配置為自動拒絕對它的任何直接URL請求,外部用戶無法下載或查看在該文件中編寫的代碼。

void Application_Start(object sender,EventArgse)事件在應用程序開始前調用,只要該WEB系統開始運行,該事件就先觸發,定時觸發的判斷就可以加在里面。Timer組件是基于服務器的計時器,它使您能夠指定在應用程序中引發Elapsed事件的周期性間隔,然后可以操控此事件以提供定期處理。

void Application_Start(object sender,EventArgs e)

{

System.Timers.Timer t = new System.Timers.Timer(60000);//定義timer并設定其周期時間,1000為1秒

t.Elapsed += new System.Timers.ElapsedEventHandler(OnTimedEvent);//定時調用處理事件

t.Enabled = true;

}

private static void OnTimedEvent(object source,System.Timers.ElapsedEventArgs e)

{

System.DateTime dt = System.DateTime.Now;

if (dt.Hour == 0 dt.Minute >= 0 dt.Minute <= 2) //設定執行事件的條件,這里設定每天凌晨執行

{

for (int i = 0;i <= ds.Tables.Rows - 1;i++) //循環發送郵件列表的每個地址

SendMail();

}

}

可以設置郵件發送完成標準,避免因為上一次發送沒有完成,而定時起Timer觸發了下次事件而造成的死鎖。

六、總結

以上實現了每個重要模塊的功能,該模塊完全根據實際需要設計,具有較大的實用性。也可以利用定時觸發功能完成系統的清理、備份、維護等周期性的操作。EMailList()、SendMail()等函數寫在類文件中,在Global.asax中調用,從而實現更復雜的功能,讓程序結構更合理可讀。

主站蜘蛛池模板: 久久午夜夜伦鲁鲁片无码免费| 欧美日韩国产精品综合 | 亚洲天堂首页| 91视频国产高清| 久久99热这里只有精品免费看| 欧洲日本亚洲中文字幕| 99re在线视频观看| 91精品网站| 国产黄网站在线观看| 亚洲一区二区三区国产精品| 黄色不卡视频| 久久久久亚洲AV成人网站软件| 四虎永久免费地址| 欧美一级黄色影院| 久草国产在线观看| 亚洲国产日韩视频观看| 亚洲国产精品人久久电影| 91在线精品麻豆欧美在线| 国产精品欧美日本韩免费一区二区三区不卡 | 久久青草视频| 国产精品亚欧美一区二区| 亚洲视频影院| 国产精品99久久久| 精品人妻AV区| 国产一在线观看| 国产精品免费p区| 看你懂的巨臀中文字幕一区二区| 中国精品自拍| 国产呦精品一区二区三区下载 | 中文字幕1区2区| 热久久这里是精品6免费观看| 茄子视频毛片免费观看| 久久精品这里只有精99品| 日韩精品资源| 激情综合激情| 波多野结衣一区二区三区88| 亚洲精品高清视频| www.youjizz.com久久| 国产肉感大码AV无码| 亚洲综合二区| 精品欧美日韩国产日漫一区不卡| 综合色88| 国产精品主播| 永久毛片在线播| 亚洲第一天堂无码专区| 欧美a级完整在线观看| 亚洲人成在线精品| 2020亚洲精品无码| 国产尤物jk自慰制服喷水| 国产h视频在线观看视频| 国产aaaaa一级毛片| 国产精品综合久久久| 最新国产你懂的在线网址| 动漫精品中文字幕无码| 91精品国产麻豆国产自产在线| 久久女人网| 五月综合色婷婷| a欧美在线| 中文字幕av无码不卡免费| 波多野结衣视频网站| 日韩在线视频网| 麻豆精品国产自产在线| 强乱中文字幕在线播放不卡| lhav亚洲精品| 在线国产欧美| 国产一区二区精品高清在线观看| 精品一区二区三区水蜜桃| 国产成人91精品| 色综合久久无码网| 国产精女同一区二区三区久| 亚洲国产天堂久久九九九| 午夜精品福利影院| 在线a视频免费观看| 日韩AV无码免费一二三区| 成人午夜久久| 亚洲一区色| 最新国产精品第1页| 欧美一区二区精品久久久| 亚洲综合二区| 亚洲男人天堂2018| 亚洲欧美激情小说另类| 老司机aⅴ在线精品导航|