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

转载 2012年03月29日 17:33:11

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

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

如果要你用ASP来做一个E-mail发送系统,你首先想到的一定是借助第三方开发的组件,但这样做会耗费你很多的银子。当然你也可以用Windows的自带的对象--CDONTS.NewMail对象来传送E-...
  • jackeyabc
  • jackeyabc
  • 2006年12月26日 10:53
  • 1235

用Asp.Net 来发送E-mail

      在这篇文章中,我们将演示如何编写asp.net来发送emails。这将要讨论到诸如email 格式,优先级别,附件和邮件加密。      Asp.net通过使用SmtpMail对象来发送邮...
  • FCloud
  • FCloud
  • 2002年09月19日 09:24
  • 1511

asp.net发送E-mail

原文: http://blog.csdn.net/chinacsharper/article/details/9750303 发送电子邮件也是项目开发当中经常用到的功能,这里我整理了一个发送电子邮件...
  • qq1162195421
  • qq1162195421
  • 2013年12月11日 22:12
  • 851

SEND E-MAIL ASP.NET 发送E-Mail的代码

ME MailMessage mail = new MailMessage(); mail.To.Add(new MailAddress("wds_ict@163.com")...
  • u010416101
  • u010416101
  • 2014年11月10日 17:30
  • 734

如何建立一个合理的机器学习系统

Programming Libraries 编程库资源 原文连接 https://zhidao.baidu.com/question/712199581840513165.html我是一个“...
  • njl1023615376
  • njl1023615376
  • 2017年08月11日 11:23
  • 272

技术文档-使用C#进行E-Mail的收发操作

技术文档-使用C#进行E-Mail的收发操作 一、目标描述 发送要求:  输入: 1.对方E-Mail地址  2.smtp服务器地址  3.username  4.password  5.邮件正文  ...
  • mengyao
  • mengyao
  • 2007年08月16日 14:17
  • 2371

发送E-mail

roo.boo //创建方法过滤EMAIL; function spamcheck($field){ // filter_var() 过滤 e-mail // 使用 FILTER_...
  • dahaiziyu
  • dahaiziyu
  • 2016年11月25日 14:17
  • 144

Jenkins——应用篇——插件使用——Extended E-mail Notification Plugin

本文介绍如何在Jenkins中使用Extended E-mail Notification Plugin(ext mail)插件在Job中发送邮件,相似的插件有Mailer Plugin,但ext m...
  • houyefeng
  • houyefeng
  • 2016年05月16日 14:04
  • 10568

判断用户名、手机、E-mail等方法

1、判断用户名,在2-16位   -(BOOL)CheckInput:(NSString *)_text   {       NSString *Regex = @...
  • pengruikeji
  • pengruikeji
  • 2011年08月17日 09:45
  • 1572

Java中利用正规表现判断E-mail的范例代码

//用来判断e-mail地址的一个范例代码 //e-mail域名的正规表现private static Pattern PATTERN_EMAIL_DOMAIN_PART = Pattern.comp...
  • froole
  • froole
  • 2008年07月14日 11:38
  • 1320
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用ASP.NET构建完整E-mail发送系统
举报原因:
原因补充:

(最多只允许输入30个字)