用ASP.NET做的個(gè)性化的郵件發(fā)送系統(tǒng)
更新時(shí)間:2008年02月25日 14:27:16 作者:
如果要你用ASP來(lái)做一個(gè)郵件發(fā)送系統(tǒng),你一定認(rèn)為這是一個(gè)比較復(fù)雜的工作。其實(shí)也的確是這樣。但當(dāng)他的后繼產(chǎn)品ASP.NET被推出以后,他的強(qiáng)大功能就使的這一切就變的相對(duì)簡(jiǎn)單了。真的這樣神奇么?我們就通過(guò)ASP.NET做一個(gè)郵件發(fā)送系統(tǒng),看看到底有什么奧秘,是不是真的簡(jiǎn)單。
一.運(yùn)行環(huán)境
雖然Microsoft公司推出Visual Studio .NET已經(jīng)有一段時(shí)間了,但.NET Framework SDK卻依然還是BETA版,分別是BETA 1和BETA 2。這二個(gè)版本之間也有很大的差異,譬如說(shuō),很多名稱(chēng)空間(NameSpace)的名字都不一樣。我們這里選擇的是BETA 2。操作系統(tǒng)是Windows 2000 professional版。
二.基本知識(shí)
首先介紹一下做郵件發(fā)送系統(tǒng)中用到的一些知識(shí)。
?。ㄒ唬?先來(lái)簡(jiǎn)要的認(rèn)識(shí)一下在程序中要用到的協(xié)議——簡(jiǎn)單郵件傳輸協(xié)議(Simple Mail Transfer Protocol)——SMTP, SMTP服務(wù)器,是用來(lái)發(fā)送郵件和中轉(zhuǎn)郵件。寫(xiě)到這也要提一下他的姐妹兄弟郵局協(xié)議 3(PostOffice Protocol 3)——POP3。POP3服務(wù)器是用來(lái)接收郵件的,我們帳戶(hù)上的郵件就是保存在此類(lèi)的服務(wù)器上。由于我們?cè)诒疚闹兄皇墙榻B發(fā)送郵件,所以涉及的只是SMTP。
?。ǘ?接著我們來(lái)了解一下我們?cè)诔绦蛑杏玫降拿Q(chēng)空間(NameSpace)——System.Web.Mail(注:.NET Framework SDK Beta 1版中叫System.Web.Util)。在這個(gè)大的類(lèi)庫(kù)里面提供了關(guān)于郵件發(fā)送的豐富的對(duì)象、屬性、方法,就是他使的發(fā)送郵件變成了一件很輕松、愉快的事情。接下來(lái)就簡(jiǎn)要介紹一下各個(gè)對(duì)象、屬性和方法的具體用法:
?。?).對(duì)象
在System.Web.Mail名稱(chēng)空間里面 用來(lái)發(fā)送郵件的對(duì)象主要有三個(gè),分別是SmtpMail、MailMessage、MailAttachment。其中SmtpMail是設(shè)定SMTP服務(wù)器,由他來(lái)選定用什么服務(wù)器來(lái)發(fā)送郵件。MailMessage是三個(gè)對(duì)象中內(nèi)容最豐富的,大量的屬性包裝成我們現(xiàn)在的郵件構(gòu)成要件,MailAttachment對(duì)象則對(duì)應(yīng)著郵件中的附件。
?。?).屬性
在System.Web.Mail名稱(chēng)空間里面是MailMessage對(duì)象的屬性最為豐富,也最為重要,下表就是他最主要的屬性,這些屬性都和我們的發(fā)送郵件直接相關(guān):
屬性名稱(chēng) 代表意義
From 源地址
To 目的地址
Subject 郵件主題
Priority 郵件優(yōu)先級(jí)(High, Low, Normal )
Attachments 附件
Bcc 暗送地址
Cc 抄送地址
Body 郵件內(nèi)容主體
Bodyformat 郵件格式(Html,Text)
Bodyencoding 郵件編碼(Base64, UUencode)
?。?).方法
在System.Web.Mail名稱(chēng)空間里面最重要的方法就是SmtpMail對(duì)象的Send方法,程序中就是通過(guò)調(diào)用他來(lái)發(fā)送郵件的。他的調(diào)用有二種方式:
i>.直接調(diào)用
對(duì)于SmtpMail對(duì)象的Send方法只要有四個(gè)參數(shù)就可以完成調(diào)用,就是說(shuō),只要有四個(gè)正確的參數(shù)就能夠發(fā)送電子郵件了。具體調(diào)用格式如下:
SmtpMail.send(“郵件源地址”,”郵件目標(biāo)地址”,”郵件主題”,”郵件內(nèi)容”)
但是這種調(diào)用過(guò)于簡(jiǎn)單,只能滿(mǎn)足簡(jiǎn)單郵件的發(fā)送,對(duì)于復(fù)雜的郵件,就要用第二中方法來(lái)調(diào)用:
ii>.把MailMessage對(duì)象作為參數(shù)來(lái)調(diào)用,具體調(diào)用如下:
SmtpMail.send(MailMessage)
由于MailMessage對(duì)象屬性多,所以這種調(diào)用可以使郵件內(nèi)容更加豐富,一般采用這種方式來(lái)發(fā)送郵件。在下面的例子里面就是用這種調(diào)用方式。
三.設(shè)計(jì)思路及步驟:
首先要說(shuō)明的是在此ASP.NET 程序里面我們用的程序語(yǔ)言是Visual Basic .NET。
第一步:要包括名稱(chēng)空間System.Web.Mail,加入在程序中使用的程序語(yǔ)言類(lèi)型:
第二步:初始化SmtpMail、MailMessage對(duì)象:
Dim mailObj AS new MailMessage
Dim smtp AS new SmtpMail
‘定義SMTP服務(wù)器的名稱(chēng)
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
‘定義郵件的有限級(jí),在此設(shè)定為高
mailObj.Priority = MailPriority.High
‘給發(fā)送的郵件附加上一個(gè)附件
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服務(wù)器的名稱(chēng) <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>
'定義郵件的有限級(jí) <br>
<br>
mailObj.Priority = MailPriority.High <br>
<br>
'給發(fā)送的郵件附加上一個(gè)附件,請(qǐng)確定在C盤(pán)的根目錄下有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)有一段時(shí)間了,但.NET Framework SDK卻依然還是BETA版,分別是BETA 1和BETA 2。這二個(gè)版本之間也有很大的差異,譬如說(shuō),很多名稱(chēng)空間(NameSpace)的名字都不一樣。我們這里選擇的是BETA 2。操作系統(tǒng)是Windows 2000 professional版。
二.基本知識(shí)
首先介紹一下做郵件發(fā)送系統(tǒng)中用到的一些知識(shí)。
?。ㄒ唬?先來(lái)簡(jiǎn)要的認(rèn)識(shí)一下在程序中要用到的協(xié)議——簡(jiǎn)單郵件傳輸協(xié)議(Simple Mail Transfer Protocol)——SMTP, SMTP服務(wù)器,是用來(lái)發(fā)送郵件和中轉(zhuǎn)郵件。寫(xiě)到這也要提一下他的姐妹兄弟郵局協(xié)議 3(PostOffice Protocol 3)——POP3。POP3服務(wù)器是用來(lái)接收郵件的,我們帳戶(hù)上的郵件就是保存在此類(lèi)的服務(wù)器上。由于我們?cè)诒疚闹兄皇墙榻B發(fā)送郵件,所以涉及的只是SMTP。
?。ǘ?接著我們來(lái)了解一下我們?cè)诔绦蛑杏玫降拿Q(chēng)空間(NameSpace)——System.Web.Mail(注:.NET Framework SDK Beta 1版中叫System.Web.Util)。在這個(gè)大的類(lèi)庫(kù)里面提供了關(guān)于郵件發(fā)送的豐富的對(duì)象、屬性、方法,就是他使的發(fā)送郵件變成了一件很輕松、愉快的事情。接下來(lái)就簡(jiǎn)要介紹一下各個(gè)對(duì)象、屬性和方法的具體用法:
?。?).對(duì)象
在System.Web.Mail名稱(chēng)空間里面 用來(lái)發(fā)送郵件的對(duì)象主要有三個(gè),分別是SmtpMail、MailMessage、MailAttachment。其中SmtpMail是設(shè)定SMTP服務(wù)器,由他來(lái)選定用什么服務(wù)器來(lái)發(fā)送郵件。MailMessage是三個(gè)對(duì)象中內(nèi)容最豐富的,大量的屬性包裝成我們現(xiàn)在的郵件構(gòu)成要件,MailAttachment對(duì)象則對(duì)應(yīng)著郵件中的附件。
?。?).屬性
在System.Web.Mail名稱(chēng)空間里面是MailMessage對(duì)象的屬性最為豐富,也最為重要,下表就是他最主要的屬性,這些屬性都和我們的發(fā)送郵件直接相關(guān):
屬性名稱(chēng) 代表意義
From 源地址
To 目的地址
Subject 郵件主題
Priority 郵件優(yōu)先級(jí)(High, Low, Normal )
Attachments 附件
Bcc 暗送地址
Cc 抄送地址
Body 郵件內(nèi)容主體
Bodyformat 郵件格式(Html,Text)
Bodyencoding 郵件編碼(Base64, UUencode)
?。?).方法
在System.Web.Mail名稱(chēng)空間里面最重要的方法就是SmtpMail對(duì)象的Send方法,程序中就是通過(guò)調(diào)用他來(lái)發(fā)送郵件的。他的調(diào)用有二種方式:
i>.直接調(diào)用
對(duì)于SmtpMail對(duì)象的Send方法只要有四個(gè)參數(shù)就可以完成調(diào)用,就是說(shuō),只要有四個(gè)正確的參數(shù)就能夠發(fā)送電子郵件了。具體調(diào)用格式如下:
SmtpMail.send(“郵件源地址”,”郵件目標(biāo)地址”,”郵件主題”,”郵件內(nèi)容”)
但是這種調(diào)用過(guò)于簡(jiǎn)單,只能滿(mǎn)足簡(jiǎn)單郵件的發(fā)送,對(duì)于復(fù)雜的郵件,就要用第二中方法來(lái)調(diào)用:
ii>.把MailMessage對(duì)象作為參數(shù)來(lái)調(diào)用,具體調(diào)用如下:
SmtpMail.send(MailMessage)
由于MailMessage對(duì)象屬性多,所以這種調(diào)用可以使郵件內(nèi)容更加豐富,一般采用這種方式來(lái)發(fā)送郵件。在下面的例子里面就是用這種調(diào)用方式。
三.設(shè)計(jì)思路及步驟:
首先要說(shuō)明的是在此ASP.NET 程序里面我們用的程序語(yǔ)言是Visual Basic .NET。
第一步:要包括名稱(chēng)空間System.Web.Mail,加入在程序中使用的程序語(yǔ)言類(lèi)型:
第二步:初始化SmtpMail、MailMessage對(duì)象:
Dim mailObj AS new MailMessage
Dim smtp AS new SmtpMail
‘定義SMTP服務(wù)器的名稱(chēng)
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
‘定義郵件的有限級(jí),在此設(shè)定為高
mailObj.Priority = MailPriority.High
‘給發(fā)送的郵件附加上一個(gè)附件
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服務(wù)器的名稱(chēng) <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>
'定義郵件的有限級(jí) <br>
<br>
mailObj.Priority = MailPriority.High <br>
<br>
'給發(fā)送的郵件附加上一個(gè)附件,請(qǐng)確定在C盤(pán)的根目錄下有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發(fā)送郵件的兩種方法小結(jié)
- 在asp.NET 中使用SMTP發(fā)送郵件的實(shí)現(xiàn)代碼
- asp.net2.0實(shí)現(xiàn)郵件發(fā)送(測(cè)試成功)
- asp.net System.Net.Mail 發(fā)送郵件
- 在ASP.NET2.0中通過(guò)Gmail發(fā)送郵件的代碼
- Asp.Net類(lèi)庫(kù)中發(fā)送電子郵件的代碼
- asp.net mvc發(fā)送郵件實(shí)例講解
- asp.net發(fā)送郵件實(shí)現(xiàn)方法
- ASP.NET郵件發(fā)送system.Net.Mail案例
- .NET發(fā)送郵件的實(shí)現(xiàn)方法示例
相關(guān)文章
asp.net開(kāi)發(fā)微信公眾平臺(tái)之驗(yàn)證消息的真實(shí)性
這篇文章主要介紹了asp.net開(kāi)發(fā)微信公眾平臺(tái)之驗(yàn)證消息的真實(shí)性的相關(guān)資料,需要的朋友可以參考下2015-06-06ASP.NET堆和棧一之基本概念和值類(lèi)型內(nèi)存分配
這篇文章介紹了ASP.NET堆和棧的基本概念和值類(lèi)型內(nèi)存分配,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08asp.net(c#)開(kāi)發(fā)中的文件上傳組件uploadify的使用方法(帶進(jìn)度條)
在asp.net開(kāi)發(fā)中,有很多可以上傳的組件模塊,利用HTML的File控件(uploadify)的上傳也是一種辦法,這里為大家介紹一下(uploadify)的一些使用方法2012-12-12asp.net中如何批量導(dǎo)出access某表內(nèi)容到word文檔
最近有項(xiàng)目需求是這樣的,需要將某表中的每一條記錄中的某些內(nèi)容導(dǎo)出在一個(gè)word文檔中。下面小編就把我的解決辦法分享給大家,供大家參考2015-10-10.Net?Core?進(jìn)程守護(hù)之Supervisor使用詳解
這篇文章主要介紹了.Net?Core?進(jìn)程守護(hù)之Supervisor使用,Supervisor它可以很方便的監(jiān)聽(tīng)、啟動(dòng)、停止、重啟一個(gè)或多個(gè)進(jìn)程,對(duì).Net?Core?進(jìn)程守護(hù)之Supervisor使用相關(guān)知識(shí)感興趣的朋友一起看看吧2022-04-04