用ASP.NET做的個性化的郵件發(fā)送系統(tǒng)
更新時間:2008年02月25日 14:27:16 作者:
如果要你用ASP來做一個郵件發(fā)送系統(tǒng),你一定認為這是一個比較復雜的工作。其實也的確是這樣。但當他的后繼產(chǎn)品ASP.NET被推出以后,他的強大功能就使的這一切就變的相對簡單了。真的這樣神奇么?我們就通過ASP.NET做一個郵件發(fā)送系統(tǒng),看看到底有什么奧秘,是不是真的簡單。
一.運行環(huán)境
雖然Microsoft公司推出Visual Studio .NET已經(jīng)有一段時間了,但.NET Framework SDK卻依然還是BETA版,分別是BETA 1和BETA 2。這二個版本之間也有很大的差異,譬如說,很多名稱空間(NameSpace)的名字都不一樣。我們這里選擇的是BETA 2。操作系統(tǒng)是Windows 2000 professional版。
二.基本知識
首先介紹一下做郵件發(fā)送系統(tǒng)中用到的一些知識。
?。ㄒ唬?先來簡要的認識一下在程序中要用到的協(xié)議——簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol)——SMTP, SMTP服務器,是用來發(fā)送郵件和中轉郵件。寫到這也要提一下他的姐妹兄弟郵局協(xié)議 3(PostOffice Protocol 3)——POP3。POP3服務器是用來接收郵件的,我們帳戶上的郵件就是保存在此類的服務器上。由于我們在本文中只是介紹發(fā)送郵件,所以涉及的只是SMTP。
?。ǘ?接著我們來了解一下我們在程序中用到的名稱空間(NameSpace)——System.Web.Mail(注:.NET Framework SDK Beta 1版中叫System.Web.Util)。在這個大的類庫里面提供了關于郵件發(fā)送的豐富的對象、屬性、方法,就是他使的發(fā)送郵件變成了一件很輕松、愉快的事情。接下來就簡要介紹一下各個對象、屬性和方法的具體用法:
?。?).對象
在System.Web.Mail名稱空間里面 用來發(fā)送郵件的對象主要有三個,分別是SmtpMail、MailMessage、MailAttachment。其中SmtpMail是設定SMTP服務器,由他來選定用什么服務器來發(fā)送郵件。MailMessage是三個對象中內(nèi)容最豐富的,大量的屬性包裝成我們現(xiàn)在的郵件構成要件,MailAttachment對象則對應著郵件中的附件。
?。?).屬性
在System.Web.Mail名稱空間里面是MailMessage對象的屬性最為豐富,也最為重要,下表就是他最主要的屬性,這些屬性都和我們的發(fā)送郵件直接相關:
屬性名稱 代表意義
From 源地址
To 目的地址
Subject 郵件主題
Priority 郵件優(yōu)先級(High, Low, Normal )
Attachments 附件
Bcc 暗送地址
Cc 抄送地址
Body 郵件內(nèi)容主體
Bodyformat 郵件格式(Html,Text)
Bodyencoding 郵件編碼(Base64, UUencode)
?。?).方法
在System.Web.Mail名稱空間里面最重要的方法就是SmtpMail對象的Send方法,程序中就是通過調(diào)用他來發(fā)送郵件的。他的調(diào)用有二種方式:
i>.直接調(diào)用
對于SmtpMail對象的Send方法只要有四個參數(shù)就可以完成調(diào)用,就是說,只要有四個正確的參數(shù)就能夠發(fā)送電子郵件了。具體調(diào)用格式如下:
SmtpMail.send(“郵件源地址”,”郵件目標地址”,”郵件主題”,”郵件內(nèi)容”)
但是這種調(diào)用過于簡單,只能滿足簡單郵件的發(fā)送,對于復雜的郵件,就要用第二中方法來調(diào)用:
ii>.把MailMessage對象作為參數(shù)來調(diào)用,具體調(diào)用如下:
SmtpMail.send(MailMessage)
由于MailMessage對象屬性多,所以這種調(diào)用可以使郵件內(nèi)容更加豐富,一般采用這種方式來發(fā)送郵件。在下面的例子里面就是用這種調(diào)用方式。
三.設計思路及步驟:
首先要說明的是在此ASP.NET 程序里面我們用的程序語言是Visual Basic .NET。
第一步:要包括名稱空間System.Web.Mail,加入在程序中使用的程序語言類型:
第二步:初始化SmtpMail、MailMessage對象:
Dim mailObj AS new MailMessage
Dim smtp AS new SmtpMail
‘定義SMTP服務器的名稱
Smtp.smtpserver="smtp.yeah.net"
‘定義郵件的發(fā)送地址
mailObj.From = “zhangchulan@yesky.com”
‘定義郵件的接收地址
mailObj.To =” majinhu@yesky.com”
‘定義郵件的暗送地址
mailObj.Bcc=”majinhu@163.net”
‘定義郵件的抄送地址
mailObj.Cc=”majinhu@yesky.com”
‘定義郵件的主題
mailObj.Subject = "我的郵件系統(tǒng),歡迎使用!"
‘定義郵件的主體
mailObj.Body = "這里是郵件的主體!"
‘郵件以 HTML的格式發(fā)送
mailObj.BodyFormat = MailFormat.Html
‘定義郵件的有限級,在此設定為高
mailObj.Priority = MailPriority.High
‘給發(fā)送的郵件附加上一個附件
mailObj.Attachments.Add(new MailAttachment("c:test.doc"))
第三步:發(fā)送郵件
Smtp.Send(mailObj)
四.程序源代碼
[tr=#ebe9eb][td]<SCRIPT language=VB RUNAT="server"> <br>
<br>
Sub SendMail (Obj As Object, E As EventArgs) <br>
<br>
Dim mailObj AS new MailMessage <br>
<br>
Dim smtp AS new SmtpMail <br>
<br>
'定義SMTP服務器的名稱 <br>
<br>
Smtp.smtpserver="smtp.yesky.com" <br>
<br>
'定義郵件的發(fā)送地址 <br>
<br>
mailObj.From = "zhangchunlan@yesky.com" <br>
<br>
'定義郵件的接收地址 <br>
<br>
mailObj.To ="majinhu@yesky.com" <br>
<br>
'定義郵件的暗送地址 <br>
<br>
mailObj.Bcc="majinhu@163.net" <br>
<br>
'定義郵件的抄送地址 <br>
<br>
mailObj.Cc="majinhu@yesky.com" <br>
<br>
'定義郵件的主題 <br>
<br>
mailObj.Subject = "我的郵件系統(tǒng),歡迎使用!" <br>
<br>
'定義郵件的主體 <br>
<br>
mailObj.Body = "這里是郵件的主體!" <br>
<br>
'郵件以HTML的格式發(fā)送 <br>
<br>
mailObj.BodyFormat = MailFormat.Html <br>
<br>
'定義郵件的有限級 <br>
<br>
mailObj.Priority = MailPriority.High <br>
<br>
'給發(fā)送的郵件附加上一個附件,請確定在C盤的根目錄下有test.doc文件 <br>
<br>
mailObj.Attachments.Add(new MailAttachment("c:test.doc"))
<br>
<br>
Smtp.Send(mailObj) <br>
<br>
End Sub <br>
<br>
</SCRIPT>
[/td][/tr]
雖然Microsoft公司推出Visual Studio .NET已經(jīng)有一段時間了,但.NET Framework SDK卻依然還是BETA版,分別是BETA 1和BETA 2。這二個版本之間也有很大的差異,譬如說,很多名稱空間(NameSpace)的名字都不一樣。我們這里選擇的是BETA 2。操作系統(tǒng)是Windows 2000 professional版。
二.基本知識
首先介紹一下做郵件發(fā)送系統(tǒng)中用到的一些知識。
?。ㄒ唬?先來簡要的認識一下在程序中要用到的協(xié)議——簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol)——SMTP, SMTP服務器,是用來發(fā)送郵件和中轉郵件。寫到這也要提一下他的姐妹兄弟郵局協(xié)議 3(PostOffice Protocol 3)——POP3。POP3服務器是用來接收郵件的,我們帳戶上的郵件就是保存在此類的服務器上。由于我們在本文中只是介紹發(fā)送郵件,所以涉及的只是SMTP。
?。ǘ?接著我們來了解一下我們在程序中用到的名稱空間(NameSpace)——System.Web.Mail(注:.NET Framework SDK Beta 1版中叫System.Web.Util)。在這個大的類庫里面提供了關于郵件發(fā)送的豐富的對象、屬性、方法,就是他使的發(fā)送郵件變成了一件很輕松、愉快的事情。接下來就簡要介紹一下各個對象、屬性和方法的具體用法:
?。?).對象
在System.Web.Mail名稱空間里面 用來發(fā)送郵件的對象主要有三個,分別是SmtpMail、MailMessage、MailAttachment。其中SmtpMail是設定SMTP服務器,由他來選定用什么服務器來發(fā)送郵件。MailMessage是三個對象中內(nèi)容最豐富的,大量的屬性包裝成我們現(xiàn)在的郵件構成要件,MailAttachment對象則對應著郵件中的附件。
?。?).屬性
在System.Web.Mail名稱空間里面是MailMessage對象的屬性最為豐富,也最為重要,下表就是他最主要的屬性,這些屬性都和我們的發(fā)送郵件直接相關:
屬性名稱 代表意義
From 源地址
To 目的地址
Subject 郵件主題
Priority 郵件優(yōu)先級(High, Low, Normal )
Attachments 附件
Bcc 暗送地址
Cc 抄送地址
Body 郵件內(nèi)容主體
Bodyformat 郵件格式(Html,Text)
Bodyencoding 郵件編碼(Base64, UUencode)
?。?).方法
在System.Web.Mail名稱空間里面最重要的方法就是SmtpMail對象的Send方法,程序中就是通過調(diào)用他來發(fā)送郵件的。他的調(diào)用有二種方式:
i>.直接調(diào)用
對于SmtpMail對象的Send方法只要有四個參數(shù)就可以完成調(diào)用,就是說,只要有四個正確的參數(shù)就能夠發(fā)送電子郵件了。具體調(diào)用格式如下:
SmtpMail.send(“郵件源地址”,”郵件目標地址”,”郵件主題”,”郵件內(nèi)容”)
但是這種調(diào)用過于簡單,只能滿足簡單郵件的發(fā)送,對于復雜的郵件,就要用第二中方法來調(diào)用:
ii>.把MailMessage對象作為參數(shù)來調(diào)用,具體調(diào)用如下:
SmtpMail.send(MailMessage)
由于MailMessage對象屬性多,所以這種調(diào)用可以使郵件內(nèi)容更加豐富,一般采用這種方式來發(fā)送郵件。在下面的例子里面就是用這種調(diào)用方式。
三.設計思路及步驟:
首先要說明的是在此ASP.NET 程序里面我們用的程序語言是Visual Basic .NET。
第一步:要包括名稱空間System.Web.Mail,加入在程序中使用的程序語言類型:
第二步:初始化SmtpMail、MailMessage對象:
Dim mailObj AS new MailMessage
Dim smtp AS new SmtpMail
‘定義SMTP服務器的名稱
Smtp.smtpserver="smtp.yeah.net"
‘定義郵件的發(fā)送地址
mailObj.From = “zhangchulan@yesky.com”
‘定義郵件的接收地址
mailObj.To =” majinhu@yesky.com”
‘定義郵件的暗送地址
mailObj.Bcc=”majinhu@163.net”
‘定義郵件的抄送地址
mailObj.Cc=”majinhu@yesky.com”
‘定義郵件的主題
mailObj.Subject = "我的郵件系統(tǒng),歡迎使用!"
‘定義郵件的主體
mailObj.Body = "這里是郵件的主體!"
‘郵件以 HTML的格式發(fā)送
mailObj.BodyFormat = MailFormat.Html
‘定義郵件的有限級,在此設定為高
mailObj.Priority = MailPriority.High
‘給發(fā)送的郵件附加上一個附件
mailObj.Attachments.Add(new MailAttachment("c:test.doc"))
第三步:發(fā)送郵件
Smtp.Send(mailObj)
四.程序源代碼
[tr=#ebe9eb][td]<SCRIPT language=VB RUNAT="server"> <br>
<br>
Sub SendMail (Obj As Object, E As EventArgs) <br>
<br>
Dim mailObj AS new MailMessage <br>
<br>
Dim smtp AS new SmtpMail <br>
<br>
'定義SMTP服務器的名稱 <br>
<br>
Smtp.smtpserver="smtp.yesky.com" <br>
<br>
'定義郵件的發(fā)送地址 <br>
<br>
mailObj.From = "zhangchunlan@yesky.com" <br>
<br>
'定義郵件的接收地址 <br>
<br>
mailObj.To ="majinhu@yesky.com" <br>
<br>
'定義郵件的暗送地址 <br>
<br>
mailObj.Bcc="majinhu@163.net" <br>
<br>
'定義郵件的抄送地址 <br>
<br>
mailObj.Cc="majinhu@yesky.com" <br>
<br>
'定義郵件的主題 <br>
<br>
mailObj.Subject = "我的郵件系統(tǒng),歡迎使用!" <br>
<br>
'定義郵件的主體 <br>
<br>
mailObj.Body = "這里是郵件的主體!" <br>
<br>
'郵件以HTML的格式發(fā)送 <br>
<br>
mailObj.BodyFormat = MailFormat.Html <br>
<br>
'定義郵件的有限級 <br>
<br>
mailObj.Priority = MailPriority.High <br>
<br>
'給發(fā)送的郵件附加上一個附件,請確定在C盤的根目錄下有test.doc文件 <br>
<br>
mailObj.Attachments.Add(new MailAttachment("c:test.doc"))
<br>
<br>
Smtp.Send(mailObj) <br>
<br>
End Sub <br>
<br>
</SCRIPT>
[/td][/tr]
相關文章
asp.net使用WebAPI和EF框架結合實現(xiàn)數(shù)據(jù)的基本操作
這篇文章介紹了asp.net使用WebAPI和EF框架結合實現(xiàn)數(shù)據(jù)基本操作的案例,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
ASP.NET MVC限制同一個IP地址單位時間間隔內(nèi)的請求次數(shù)
這篇文章介紹了ASP.NET MVC限制同一個IP地址單位時間間隔內(nèi)請求次數(shù)的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10
asp.net點擊 查看更多 實現(xiàn)無刷新加載的實現(xiàn)代碼
asp.net點擊 查看更多 實現(xiàn)無刷新加載的實現(xiàn)代碼,需要的朋友可以參考下2012-06-06
詳解ASP.NET Core中配置監(jiān)聽URLs的五種方式
這篇文章主要介紹了詳解ASP.NET Core中配置監(jiān)聽URLs的五種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
Visual Studio 2017中找回消失的“在瀏覽器中查看”命令
這篇文章主要為大家詳細介紹了如何在Visual Studio 2017中找回消失的“在瀏覽器中查看”命令,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
.NET?core項目AsyncLocal在鏈路追蹤中的應用
這篇文章主要為大家介紹了.NET?core項目zhong?AsyncLocal在鏈路追蹤中的應用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
[Asp.Net Core]用Blazor Server Side實現(xiàn)圖片驗證碼
這篇文章主要介紹了如何用Blazor Server Side實現(xiàn)圖片驗證碼,文中講解非常詳細,代碼幫助大家更好理解和學習,感興趣的朋友可以了解下2020-07-07
asp.net EXECUTENONQUERY()返回值介紹
前些日子作一些數(shù)據(jù)項目的時候 在ADO.NET 中處理 ExecuteNonQuery()方法時,總是通過判斷其返回值是否大于0來判斷操作時候成功 。但是實際上并不是這樣的,下面詳細介紹一下,有需要的朋友可以參考2013-08-08

