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中調用,從而實現更復雜的功能,讓程序結構更合理可讀。

主站蜘蛛池模板: 97成人在线观看| 69国产精品视频免费| 九九久久99精品| 国产天天射| 国产成人高清精品免费5388| 久久久久久久久18禁秘| 亚洲黄色成人| 国内99精品激情视频精品| 欧美激情第一欧美在线| 老司机精品久久| 国产精品亚洲va在线观看| 中文字幕一区二区视频| 日本不卡在线播放| 国产精品永久久久久| 亚洲国产天堂久久综合| 国产免费观看av大片的网站| 久久这里只有精品66| 成人国产小视频| 福利姬国产精品一区在线| 久久婷婷五月综合色一区二区| 中文国产成人精品久久| 日本欧美一二三区色视频| 99久久婷婷国产综合精| 在线免费无码视频| 2020国产精品视频| 亚洲视频在线网| 国产成人艳妇AA视频在线| 波多野结衣无码中文字幕在线观看一区二区 | 福利一区三区| 亚洲综合天堂网| 在线观看国产精品一区| 国产欧美视频在线观看| 青青青国产精品国产精品美女| 亚洲综合久久成人AV| 日本一区二区三区精品AⅤ| 国产自在线拍| AV无码一区二区三区四区| 国产在线观看第二页| 97视频在线观看免费视频| 99视频精品全国免费品| 國產尤物AV尤物在線觀看| 欧美午夜在线观看| 国产美女一级毛片| 国产美女丝袜高潮| 99久久精品久久久久久婷婷| 秘书高跟黑色丝袜国产91在线| 亚洲精品视频网| 国产成人精品2021欧美日韩| 伊人无码视屏| 狠狠色狠狠综合久久| 无遮挡国产高潮视频免费观看| 国产亚洲精品资源在线26u| 欧美精品黑人粗大| 成人福利一区二区视频在线| 波多野结衣在线一区二区| 中文字幕欧美日韩| 91精品国产91久久久久久三级| 日本欧美在线观看| 国产男人天堂| 全免费a级毛片免费看不卡| 1769国产精品免费视频| 精品国产免费观看| 在线另类稀缺国产呦| 91国内外精品自在线播放| 久久国产精品夜色| 天天婬欲婬香婬色婬视频播放| 夜色爽爽影院18禁妓女影院| 成人年鲁鲁在线观看视频| 欧美啪啪网| 久久精品亚洲热综合一区二区| 91精品国产综合久久不国产大片| 2021国产精品自产拍在线| 成人福利在线视频免费观看| 精品天海翼一区二区| 久久综合九九亚洲一区| 日韩资源站| 国产精女同一区二区三区久| 国产成人无码Av在线播放无广告| 欧美视频在线观看第一页| 亚洲AV电影不卡在线观看| 国产一区免费在线观看| 亚洲一区二区精品无码久久久|