asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

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


发布日期:2024年01月14日
 
用ASP.NET构建完整E-mail发送系统
如果要你用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的发送了

上一篇:ASP.NET入门教程 7.5 带有参数的数据源控件[2]

下一篇:在ASP.NET中实现弹窗报警提示[1]