设为首页收藏本站language 语言切换
查看: 1587|回复: 0
收起左侧

用ASP.NET构建完整E-mail发送系统

[复制链接]
发表于 2010-2-25 10:19:25 | 显示全部楼层 |阅读模式
<p ><ccid_nobr>如果要你用ASP来做一个E-mail发送系统,你首先想到的一定是借助第三方开发的组件,但这样做会耗费你很多的银子。当然你也可以用Windows的自带的对象--CDONTS.NewMail对象来传送E-mail,这虽然是免费的,但却十分依赖操作平台,CDONTS.NewMail对象只存在Windows 200和NT底下,在Windows 95/98底下是没有这个对象。<br/>自从Microsoft公司推出了ASP.NET,E-mail的发送已经成为WEB程序设计的基本对象。本篇文章就是来讨论如何做一个功能十分完备的E_mai的发送系统。<br/><br/><b>一.开发和运行平台</b><br/>Windows 2000 Professional、.Net FrameWork Beta 2<br/><br/><b>二.什么样的E-mail发送系统才是一个功能十分完备系统</b> 只有当一个邮件发送系统具备了:收件人地址、发信人地址、抄送地址、密送地址、邮件主题、邮件主体、和附件等功能时,这个邮件发送系统才是一个比较完备的系统。具备的具体功能如下图所示:<br/><div align="center"><img  src="http://www.hh010.com/upload_files/article/244/9_nvqrld8593.gif"></div>下面就介绍实现这些功能的具体步骤。<br/><br/><b>三.具体实现步骤</b><br/>首先要介绍.Net FrameWork SDK中的一个关于E-mail发送的Class Library(类库)--System.Web.Mail。这个Class library提供了E-mail发送的所有对象、属性和方法。其中最重要的对象是MailMessage对象和SmtpMail对象。MailMessage对象主要是包装E-mail的各个结构。譬如:收件人地址、发信人地址等。SmtpMail对象主要是把已经定义好的MailMessage对象发送出去。下面就一些重要的步骤具体说明一下:<br/>1.为了定义MailMessage对象,首先要创立一个MailMessage对象。通过下面语句就可以创立一个MailMessage对象。<br/><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code">&lt;% @Import Namespace=&quot;System.Web.Mail&quot;<br/>Dim MailObj as New MailMessage() %&gt;</td></tr></table><br/>2.有了一个MailMessage对象后,下面就来定义邮件的结构。我们按照上图的邮件结构顺序来逐个定义。<br/><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code">1&gt;.邮件的发送地址:<br/>MailObj.form=&quot;发送地址&quot;<br/>2&gt;.邮件的目的地址:<br/>MailObj.to=&quot;目的地址&quot;<br/>如果你要发送给多个人,用逗号分开每个邮件地址。<br/>3&gt;.邮件的抄送地址:<br/>MailObj.cc=&quot;抄送地址&quot;<br/>同样的,如果你要发送给多个人,可以在&quot;抄送地址&quot;上,写上多个邮件地址,但要用逗号把他们分开。<br/>4&gt;.邮件的密送地址:<br/>MailObj.bcc=&quot;密送地址&quot;<br/>密送地址和抄送地址类似<br/>5&gt;.邮件主题:<br/>MailObj.subject=&quot;邮件主题&quot;<br/>6&gt;.邮件内容:<br/>MailObj.Body=&quot;邮件内容&quot;<br/>7&gt;.邮件的优先级:<br/>MailObj.Priority=MailPriority.Normal '这是把邮件的优先级定义为普通,你也可以定义为高(high)、低(low)<br/>8&gt;.定义邮件格式:<br/>MailObj.BodyFormat=MailFormat.Text '这是把邮件定义为文本格式,你也可以把邮件定义为超文本格式,只有把MailFormat.Text改成MailFormat.Html即可。<br/>9&gt;.给邮件添加一个附件:<br/>用过ASP的人都了解,要想浏览一下文件是多么困难的事情。但ASP.NET出现以后,这一切就变的简单起来。只用下面一行代码,就可以选择驱动器的任何文件。<br/>&lt;input id=&quot;Emailfile&quot; type=&quot;file&quot;runat=&quot;server&quot; size=&quot;40&quot;/&gt;</td></tr></table><br/>3.发送E-mail<br/><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code">SmtpMail.SmtpServer=&quot;&quot; '指定使用缺省的SMTP服务器<br/>SmtpMail.Send(MailObj) '发送E-mail</td></tr></table><br/><br/><b>四.程序完整的源代码</b><br/><table width="580" border="1" cellspacing="0" cellpadding="0" bordercolorlight="black" bordercolordark="#ffffff"><tr><td bgcolor="e6e6e6" class="code">&lt;% @Import Namespace=&quot;System.Web.Mail&quot;%&gt;<br/>&lt;script language=&quot;vb&quot; runat=&quot;server&quot;&gt;<br/>Sub SendButton_Click(sender as Object, eas EventArgs)<br/>'创立一个 MailMessage 对象<br/>Dim MailObj as New MailMessage()<br/>'以下是设定MailMessage 对象的属性,及程序的一些常规判断。<br/>'设定邮件的发送地址<br/>if EmailFrom.text&lt;&gt;&quot;&quot; thenMailObj.From=EmailFrom.text<br/>'设定邮件的目的地址<br/>if EmailTo.text&lt;&gt;&quot;&quot; thenMailObj.To=EmailTo.text<br/>'设定邮件的抄送地址<br/>if EmailCc.text&lt;&gt;&quot;&quot; thenMailObj.Cc=EmailCc.text<br/>'设定邮件的密送地址<br/>if EmailBcc.text&lt;&gt;&quot;&quot; thenMailObj.Bcc=EmailBcc.text<br/>'设定邮件格式是文本格式,如果要设定成超文本,把MailFormat.Text改成MailFormat.Html<br/>MailObj.BodyFormat=MailFormat.Text<br/>'设定邮件优先级,可为 High(高), Low(低),Normal(普通)<br/>MailObj.Priority=MailPriority.Normal<br/>'设定邮件主题<br/>MailObj.Subject=EmailSubject.text<br/>'设定邮件内容<br/>MailObj.Body=EmailBody.text<br/>'给邮件增加一个附件<br/>Dim strFileName as string<br/>strFileName=Emailfile.PostedFile.FileName<br/>if strFileName&lt;&gt;&quot;&quot; then MailObj.Attachments.Add(newMailAttachment(strFileName))<br/>'指定使用缺省的SMTP服务器<br/>SmtpMail.SmtpServer=&quot;&quot;<br/>'现在开始发送邮件<br/>SmtpMail.Send(MailObj)<br/>panelSendEmail.Visible=false<br/>panelMailSent.Visible=true<br/>End Sub<br/>&lt;/script&gt;<br/>&lt;html&gt;<br/>&lt;body&gt;<br/>&lt;asp:panel id=&quot;panelSendEmail&quot;runat=&quot;server&quot;&gt;<br/>&lt;form Method=&quotost&quot; EncType=&quot;Multipart/Form-Data&quot;runat=&quot;server&quot;&gt;<br/>&lt;h2&gt;欢迎用ASP.NET来发送E-mail&lt;/h2&gt;<br/>&lt;b&gt;请输入邮件发送地址:&lt;/b&gt;<br/>&lt;asp:textbox id=&quot;EmailFrom&quot;size=&quot;30&quot; runat=&quot;server&quot;/&gt;<br/>&lt;p&gt;<br/>&lt;b&gt;请输入邮件目的地址:&lt;/b&gt;<br/>&lt;asp:textbox id=&quot;EmailTo&quot; size=&quot;30&quot;runat=&quot;server&quot; /&gt;<br/>&lt;p&gt;<br/>&lt;b&gt;请输入邮件抄送地址:&lt;/b&gt;<br/>&lt;asp:textbox id=&quot;EmailCc&quot; size=&quot;30&quot;runat=&quot;server&quot; /&gt;<br/>&lt;p&gt;<br/>&lt;b&gt;请输入邮件密送地址:&lt;/b&gt;<br/>&lt;asp:textbox id=&quot;EmailBcc&quot; size=&quot;30&quot;runat=&quot;server&quot; /&gt;<br/>&lt;p&gt;<br/>&lt;b&gt;请输入邮件主题:&lt;/b&gt;<br/>&lt;asp:textbox id=&quot;EmailSubject&quot;size=&quot;30&quot; runat=&quot;server&quot;/&gt;<br/>&lt;p&gt;<br/>&lt;b&gt;请输入邮件主体:&lt;/b&gt;<br/>&lt;asp:textbox id=&quot;EmailBody&quot;TextMode=&quot;MultiLine&quot;<br/>Columns=&quot;40&quot; Rows=&quot;10&quot;runat=&quot;server&quot; /&gt;<br/>&lt;p&gt;<br/>&lt;b&gt;请加入附件名称:&lt;/b&gt;<br/>&lt;input id=&quot;Emailfile&quot; type=&quot;file&quot;runat=&quot;server&quot; size=&quot;40&quot;/&gt;<br/>&lt;asp:button runat=&quot;server&quot; id=&quot;SendButton&quot;Text=&quot;发送&quot;<br/>OnClick=&quot;SendButton_Click&quot; /&gt;<br/>&lt;/form&gt;<br/>&lt;/asp:panel&gt;<br/>&lt;asp:panel id=&quot;panelMailSent&quot;runat=&quot;server&quot; Visible=&quot;False&quot;&gt;<br/>您的邮件已经成功发送,欢迎您的再次使用!<br/>&lt;/asp:panel&gt;<br/>&lt;/body&gt;<br/>&lt;/html&gt;<br/></td></tr></table><br/><br/>五.至此一个完整的E-mail发送系统就完成了。如果你的机器达到了本文前面提到的运行环境,那么就建立一个指向此aspx文件的虚拟目录,连接上Internet,在浏览器里运行此程序,就可以方便的完成E-mail的发送了。<br/><br/>欢迎访问:微软开发者专栏(责任编辑 <ccid_nobr>尤北</ccid_nobr>)<p ></ccid_nobr><p align="center"></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-4 03:49 , Processed in 0.055453 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表