熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

用ASP.NET構建完整E-mail發送系統

2013-11-13 11:10:24  來源: .NET編程 
  如果要你用ASP來做一個Email發送系統你首先想到的一定是借助第三方開發的組件但這樣做會耗費你很多的銀子當然你也可以用Windows的自帶的對象CDONTSNewMail對象來傳送Email這雖然是免費的但卻十分依賴操作平台CDONTSNewMail對象只存在Windows 和NT底下在Windows /底下是沒有這個對象

  自從Microsoft公司推出了ASPNETEmail的發送已經成為WEB程序設計的基本對象本篇文章就是來討論如何做一個功能十分完備的E_mai的發送系統

  一.開發和運行平台

  Windows ProfessionalNet FrameWork Beta

  二.什麼樣的Email發送系統才是一個功能十分完備系統

  只有當一個郵件發送系統具備了收件人地址發信人地址抄送地址密送地址郵件主題郵件主體和附件等功能時這個郵件發送系統才是一個比較完備的系統具備的具體功能如下圖所示


  下面就介紹實現這些功能的具體步驟

  三.具體實現步驟

  首先要介紹Net FrameWork SDK中的一個關於Email發送的Class Library(類庫)SystemWebMail這個Class library提供了Email發送的所有對象屬性和方法其中最重要的對象是MailMessage對象和SmtpMail對象MailMessage對象主要是包裝Email的各個結構譬如收件人地址發信人地址等SmtpMail對象主要是把已經定義好的MailMessage對象發送出去下面就一些重要的步驟具體說明一下

  .為了定義MailMessage對象首先要創立一個MailMessage對象通過下面語句就可以創立一個MailMessage對象

<% @Import Namespace=SystemWebMail Dim MailObj as New MailMessage() %>

  .有了一個MailMessage對象後下面就來定義郵件的結構我們按照上圖的郵件結構順序來逐個定義

  >郵件的發送地址 MailObjform=發送地址

  >郵件的目的地址 MailObjto=目的地址 

  如果你要發送給多個人用逗號分開每個郵件地址

  >郵件的抄送地址 MailObjcc=抄送地址 

  同樣的如果你要發送給多個人可以在抄送地址寫上多個郵件地址但要用逗號把他們分開

  >郵件的密送地址 MailObjbcc=密送地址

  密送地址和抄送地址類似

  >郵件主題 MailObjsubject=郵件主題

  >郵件內容 MailObjBody=郵件內容

  >郵件的優先級MailObjPriority = MailPriorityNormal

  這是把郵件的優先級定義為普通你也可以定義為高(high)低(low)

  >定義郵件格式MailObjBodyFormat = MailFormatText
  
  這是把郵件定義為文本格式你也可以把郵件定義為超文本格式只有把MailFormatText改成MailFormatHtml即可

  >給郵件添加附件<input id=Emailfile type=file runat=server size= />

  用過ASP的人都了解要想浏覽一下文件是多麼困難的事情但ASPNET出現以後這一切就變的簡單起來只用上面一行代碼就可以選擇驅動器的任何文件

  .發送Email

SmtpMailSmtpServer = 指定使用缺省的SMTP服務器
SmtpMailSend(MailObj) 發送Email


  四.程序完整的源代碼

<% @Import Namespace=SystemWebMail %>
<script language=vb runat=server>
Sub SendButton_Click(sender as Object e as EventArgs)
創立一個 MailMessage 對象
Dim MailObj as New MailMessage()
以下是設定MailMessage 對象的屬性及程序的一些常規判斷
設定郵件的發送地址
if EmailFromtext<> then MailObjFrom = EmailFromtext
設定郵件的目的地址
if EmailTotext<> then MailObjTo = EmailTotext
設定郵件的抄送地址
if EmailCctext<> then MailObjCc = EmailCctext
設定郵件的密送地址
if EmailBcctext<> then MailObjBcc = EmailBcctext
設定郵件格式是文本格式如果要設定成超文本把MailFormatText改成 MailFormatHtml
MailObjBodyFormat = MailFormatText
設定郵件優先級可為 High(高) Low(低) Normal(普通)
MailObjPriority = MailPriorityNormal
設定郵件主題
MailObjSubject = EmailSubjecttext
設定郵件內容
MailObjBody = EmailBodytext
給郵件增加一個附件
Dim strFileName as string
strFileName=EmailfilePostedFileFileName
if strFileName<> then MailObjAttachmentsAdd(new MailAttachment(strFileName))
指定使用缺省的SMTP服務器
SmtpMailSmtpServer =
現在開始發送郵件
SmtpMailSend(MailObj)
panelSendEmailVisible = false
panelMailSentVisible = true
End Sub
</script>
<html>
<body>
<asp:panel id=panelSendEmail runat=server>
<form Method=Post EncType=Multipart/FormData runat=server>
<h>歡迎用ASPNET來發送Email</h>
<b>請輸入郵件發送地址:</b>
<asp:textbox id=EmailFrom size= runat=server />
<p>
<b>請輸入郵件目的地址:</b>
<asp:textbox id=EmailTo size= runat=server />
<p>
<b>請輸入郵件抄送地址:</b>
<asp:textbox id=EmailCc size= runat=server />
<p>
<b>請輸入郵件密送地址:</b>
<asp:textbox id=EmailBcc size= runat=server />
<p>
<b>請輸入郵件主題:</b>
<asp:textbox id=EmailSubject size= runat=server />
<p>
<b>請輸入郵件主體:</b>
<asp:textbox id=EmailBody TextMode=MultiLine
Columns= Rows= runat=server />
<p>
<b>請加入附件名稱:</b>
<input id=Emailfile type=file runat=server size= />
<asp:button runat=server id=SendButton Text=發送
OnClick=SendButton_Click />
</form>
</asp:panel>
<asp:panel id=panelMailSent runat=server Visible=False>
您的郵件已經成功發送歡迎您的再次使用!
</asp:panel>
</body>
</html>


  五.一個完整的Email發送系統就完成了

  如果你的機器達到了本文前面提到的運行環境那麼就建立一個指向此aspx文件的虛擬目錄連接上Internet在浏覽器裡運行此程序就可以方便的完成Email的發送了


From:http://tw.wingwit.com/Article/program/net/201311/15319.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.