站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 网络编程 > NET专区 > 正文

用ASP.NET构建完整E-mail发送系统
  2007年08月20日01:00:49  评论(2条) 字体:[ ]
相关热点:

  如果要你用ASP来做一个E-mail发送系统,你首先想到的一定是借助第三方开发的组件,但这样做会耗费你很多的银子。当然你也可以用Windows的自带的对象--CDONTS.NewMail对象来传送E-mail,这虽然是免费的,但却十分依赖操作平台,CDONTS.NewMail对象只存在Windows 200和NT底下,在Windows 95/98底下是没有这个对象。


  自从Microsoft公司推出了ASP.NET,E-mail的发送已经成为WEB程序设计的基本对象。本篇文章就是来讨论如何做一个功能十分完备的E_mai的发送系统。

一.开发和运行平台

Windows 2000 Professional、.Net FrameWork Beta 2

二.什么样的E-mail发送系统才是一个功能十分完备系统
  只有当一个邮件发送系统具备了:收件人地址、发信人地址、抄送地址、密送地址、邮件主题、邮件主体、和附件等功能时,这个邮件发送系统才是一个比较完备的系统。具备的具体功能如下图所示:




下面就介绍实现这些功能的具体步骤。

三.具体实现步骤

  首先要介绍.Net FrameWork SDK中的一个关于E-mail发送的Class Library(类库)--System.Web.Mail。这个Class library提供了E-mail发送的所有对象、属性和方法。其中最重要的对象是MailMessage对象和SmtpMail对象。MailMessage对象主要是包装E-mail的各个结构。譬如:收件人地址、发信人地址等。SmtpMail对象主要是把已经定义好的MailMessage对象发送出去。下面就一些重要的步骤具体说明一下:

  1.
为了定义MailMessage对象,首先要创立一个MailMessage对象。通过下面语句就可以创立一个 MailMessage对象。


  <% @Import Namespace="System.Web.Mail"
  Dim MailObj as New MailMessage() %>


  2.有了一个MailMessage对象后,下面就来定义邮件的结构。我们按照上图的邮件结构顺序来逐个定义。


  1>.邮件的发送地址:
  MailObj.form="发送地址"
  2>.邮件的目的地址:
  MailObj.to="目的地址"
  如果你要发送给多个人,用逗号分开每个邮件地址。
  3>.邮件的抄送地址:
  MailObj.cc="抄送地址"
  同样的,如果你要发送给多个人,可以在"抄送地址"上,写上多个邮件地址,但要用逗号把他们分开。
  4>.邮件的密送地址:
  MailObj.bcc="密送地址"
  密送地址和抄送地址类似
  5>.邮件主题:
  MailObj.subject="邮件主题"
  6>.邮件内容:
  MailObj.Body="邮件内容"
  7>.邮件的优先级:
  MailObj.Priority = MailPriority.Normal '这是把邮件的优先级定义为普通,你也可以定义为高(high)、低         (low)
  8>.定义邮件格式:
  MailObj.BodyFormat = MailFormat.Text '这是把邮件定义为文本格式,你也可以把邮件定义为超文本格式,只有把MailFormat.Text改成MailFormat.Html即可。
  9>.给邮件添加一个附件:
  用过ASP的人都了解,要想浏览一下文件是多么困难的事情。但ASP.NET出现以后,这一切就变的简单起来。只用下面一行代码,就可以选择驱动器的任何文件。
  <input id="Emailfile" type="file" runat="server" size="40" />


3.发送E-mail

  SmtpMail.SmtpServer = "" '指定使用缺省的SMTP服务器
  SmtpMail.Send(MailObj) '发送E-mail


四.程序完整的源代码

  <% @Import Namespace="System.Web.Mail" %>
  <script language="vb" runat="server">
  Sub SendButton_Click(sender as Object, e as EventArgs)
  '创立一个 MailMessage 对象
  Dim MailObj as New MailMessage()
  '以下是设定MailMessage 对象的属性,及程序的一些常规判断。
  '设定邮件的发送地址
  if EmailFrom.text<>"" then MailObj.From = EmailFrom.text
  '设定邮件的目的地址
  if EmailTo.text<>"" then MailObj.To = EmailTo.text
  '设定邮件的抄送地址
  if EmailCc.text<>"" then MailObj.Cc = EmailCc.text
  '设定邮件的密送地址
  if EmailBcc.text<>"" then MailObj.Bcc = EmailBcc.text
  '设定邮件格式是文本格式,如果要设定成超文本,把MailFormat.Text改成 MailFormat.Html
  MailObj.BodyFormat = MailFormat.Text
  '设定邮件优先级,可为 High(高), Low(低), Normal(普通)
  MailObj.Priority = MailPriority.Normal
  '设定邮件主题
  MailObj.Subject = EmailSubject.text
  '设定邮件内容
  MailObj.Body = EmailBody.text
  '给邮件增加一个附件
  Dim strFileName as string
  strFileName=Emailfile.PostedFile.FileName
  if strFileName<>"" then MailObj.Attachments.Add(new MailAttachment(strFileName))
  '指定使用缺省的SMTP服务器
  SmtpMail.SmtpServer = ""
  '现在开始发送邮件
  SmtpMail.Send(MailObj)
  panelSendEmail.Visible = false
  panelMailSent.Visible = true
  End Sub
  </script>
  <html>
  <body>
  <asp:panel id="panelSendEmail" runat="server">
  <form Method="Post" EncType="Multipart/Form-Data" runat="server">
  <h2>欢迎用ASP.NET来发送E-mail</h2>
  <b>请输入邮件发送地址:</b>
  <asp:textbox id="EmailFrom" size="30" runat="server" />
  <p>
  <b>请输入邮件目的地址:</b>
  <asp:textbox id="EmailTo" size="30" runat="server" />
  <p>
  <b>请输入邮件抄送地址:</b>
  <asp:textbox id="EmailCc" size="30" runat="server" />
  <p>
  <b>请输入邮件密送地址:</b>
  <asp:textbox id="EmailBcc" size="30" runat="server" />
  <p>
  <b>??请输入邮件主题:</b>
  <asp:textbox id="EmailSubject" size="30" runat="server" />
  <p>
  <b>??请输入邮件主体:</b>
  <asp:textbox id="EmailBody" TextMode="MultiLine"
  Columns="40" Rows="10" runat="server" />
  <p>
  <b>??请加入附件名称:</b>
  <input id="Emailfile" type="file" runat="server" size="40" />
  <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>
五.至此一个完整的E-mail发送系统就完成了。如果你的机器达到了本文前面提到的运行环境,那么就建立一个指向此aspx文件的虚拟目录,连接上Internet,在浏览器里运行此程序,就可以方便的完成E-mail的发送了。






责任编辑:

收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱
热评文章
·悬挂阿里妈妈会否被百度惩罚
·阿里妈妈是否是中小站长的救世主?
·搜搜问问抢不了百度知道的饭碗
·网络的成功在于与传统商业的联姻
·Google绿色专家质疑黑色背景网页节省资源
·我的网络,我的团队:专访李文明
·网聚力量矜持是道专访聚吧站长欠情
·色•戒•网络:均在欲望中纠缠
·访谈录 非主流巴士网站长球球快跑
·站长访谈:天道酬勤 青春有梦
·草根站长团队建设浅析
·随爱而行 专访湛蓝城堡三位女管理员
·评论:博客实名黯然退场 网络管制宜有反思
·百度新闻频道改版十天 流量止跌反弹翻了一
·爆笑 阿里就这样把亿告征服!
最新图文

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
JSP语法(6)
超强弹出窗口代码,什么都挡不住
FLASH视觉特效实例之地震效果
贴吧发帖机使用教程(绝对原创)
关于数据分页(转自www.codeproject.co
ASP实现文件直接下载
Photoshop制作光感超酷效果水晶球
 遍历ASP.NET页面控件
永远的后门[经典]+查不出的后门
淘宝网卖家公然叫卖“艳照门”照片集
驳《百度Hi面世对腾讯有利》
Google绿色专家质疑黑色背景网页节省资
国内各IT企业办公环境揭秘(多图)
阿里妈妈广告卖主全攻略
站长创业源动力 主流站长站赏析
推荐阅读:80年小子的创业道理
Discuz!6.0猛将出击 最强论坛程序酷炫
我的网络,我的团队:专访李文明
百度新闻频道改版十天 流量止跌反弹翻
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
ECSHOP模板下载
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
艰难的走在创业的路上 第一天
编程中国全站采集规则
性福联盟 一个不尊重站长的联盟
大脚:日赚100元—揭露最新firefox欺骗
大脚:垃圾站超级赚钱法之二—突破“站
大脚:垃圾站超级赚钱法之——前言
迅雷联盟、快车联盟收入对比
经理人必看的十个管理网站
Google Adsense的秘密 第二版
西联汇款兑付城市查询
不用SEO取得成功的10个步骤
关于做GOOGLE的五条经验
站长学院  网页设计 建站教程 图形图象 网络编程

Photoshop CS3
Photoshop CS3
不用Photoshop
不用Photoshop

DIV+CSS的开发方式 听听另外的
虚拟主机建站动易里快速生成的
VBScript特效代码 满屏幕乱跑
牛气!一个菜鸟站长的超强网站
创建、维护一个个人博客的“投
让网站流量稳步飙升的秘籍
网站推广的基本思想

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13256307008