分享
 
 
 

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

王朝asp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

如果要你用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的发送了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有