如果要你用ASP來做一個郵件發送系統,你一定認為這是一個比較復雜的工作。其實也的確是這樣。但當他的後繼產品ASP.NET被推出以後,他的強大功能就使的這一切就變的相對簡單了。真的這樣神奇麼?我們就通過ASP.NET做一個郵件發送系統,看看到底有什麼奧秘,是不是真的簡單。
一.運行環境
雖然Microsoft公司推出Visual Studio .NET已經有一段時間了,但.NET Framework SDK卻依然還是BETA版,分別是BETA 1和BETA 2。這二個版本之間也有很大的差異,譬如說,很多名稱空間(NameSpace)的名字都不一樣。我們這裡選擇的是BETA 2。操作系統是Windows 2000 professional版。
二.基本知識
首先介紹一下做郵件發送系統中用到的一些知識。
(一).先來簡要的認識一下在程序中要用到的協議——簡單郵件傳輸協議(Simple Mail Transfer Protocol)——SMTP, SMTP服務器,是用來發送郵件和中轉郵件。寫到這也要提一下他的姐妹兄弟郵局協議 3(PostOffice Protocol 3)——POP3。POP3服務器是用來接收郵件的,我們帳戶上的郵件就是保存在此類的服務器上。由於我們在本文中只是介紹發送郵件,所以涉及的只是SMTP。
(二).接著我們來了解一下我們在程序中用到的名稱空間(NameSpace)——System.Web.Mail(注:.NET Framework SDK Beta 1版中叫System.Web.Util)。在這個大的類庫裡面提供了關於郵件發送的豐富的對象、屬性、方法,就是他使的發送郵件變成了一件很輕松、愉快的事情。接下來就簡要介紹一下各個對象、屬性和方法的具體用法:
(1).對象
在System.Web.Mail名稱空間裡面 用來發送郵件的對象主要有三個,分別是SmtpMail、MailMessage、MailAttachment。其中SmtpMail是設定SMTP服務器,由他來選定用什麼服務器來發送郵件。MailMessage是三個對象中內容最豐富的,大量的屬性包裝成我們現在的郵件構成要件,MailAttachment對象則對應著郵件中的附件。
(2).屬性
在System.Web.Mail名稱空間裡面是MailMessage對象的屬性最為豐富,也最為重要,下表就是他最主要的屬性,這些屬性都和我們的發送郵件直接相關:
屬性名稱 代表意義 From 源地址 To 目的地址 Subject 郵件主題 Priority 郵件優先級(High, Low, Normal ) Attachments 附件 Bcc 暗送地址 Cc 抄送地址 Body 郵件內容主體 Bodyformat 郵件格式(Html,Text) Bodyencoding 郵件編碼(Base64, UUencode)(3).方法
在System.Web.Mail名稱空間裡面最重要的方法就是SmtpMail對象的Send方法,程序中就是通過調用他來發送郵件的。他的調用有二種方式:
i>.直接調用
對於SmtpMail對象的Send方法只要有四個參數就可以完成調用,就是說,只要有四個正確的參數就能夠發送電子郵件了。具體調用格式如下:
SmtpMail.send(“郵件源地址”,”郵件目標地址”,”郵件主題”,”郵件內容”)
但是這種調用過於簡單,只能滿足簡單郵件的發送,對於復雜的郵件,就要用第二中方法來調用:
ii>.把MailMessage對象作為參數來調用,具體調用如下:
SmtpMail.send(MailMessage)
由於MailMessage對象屬性多,所以這種調用可以使郵件內容更加豐富,一般采用這種方式來發送郵件。在下面的例子裡面就是用這種調用方式。