用ASP.NET做的个性化的邮件发送系统

所属分类: 网络编程 / ASP.NET 阅读数: 500
收藏 0 赞 0 分享
一.运行环境 

  虽然Microsoft公司推出Visual Studio .NET已经有一段时间了,但.NET Framework SDK却依然还是BETA版,分别是BETA 1和BETA 2。这二个版本之间也有很大的差异,譬如说,很多名称空间(NameSpace)的名字都不一样。我们这里选择的是BETA 2。操作系统是Windows 2000 professional版。 

  二.基本知识 

  首先介绍一下做邮件发送系统中用到的一些知识。 

  (一).先来简要的认识一下在程序中要用到的协议——简单邮件传输协议(Simple Mail Transfer Protocol)——SMTP, SMTP服务器,是用来发送邮件和中转邮件。写到这也要提一下他的姐妹兄弟邮局协议 3(PostOffice Protocol 3)——POP3。POP3服务器是用来接收邮件的,我们帐户上的邮件就是保存在此类的服务器上。由于我们在本文中只是介绍发送邮件,所以涉及的只是SMTP。 

  (二).接着我们来了解一下我们在程序中用到的名称空间(NameSpace)——System.Web.Mail(注:.NET Framework SDK Beta 1版中叫System.Web.Util)。在这个大的类库里面提供了关于邮件发送的丰富的对象、属性、方法,就是他使的发送邮件变成了一件很轻松、愉快的事情。接下来就简要介绍一下各个对象、属性和方法的具体用法: 

  (1).对象 

  在System.Web.Mail名称空间里面 用来发送邮件的对象主要有三个,分别是SmtpMail、MailMessage、MailAttachment。其中SmtpMail是设定SMTP服务器,由他来选定用什么服务器来发送邮件。MailMessage是三个对象中内容最丰富的,大量的属性包装成我们现在的邮件构成要件,MailAttachment对象则对应着邮件中的附件。 

  (2).属性 

  在System.Web.Mail名称空间里面是MailMessage对象的属性最为丰富,也最为重要,下表就是他最主要的属性,这些属性都和我们的发送邮件直接相关: 

属性名称 代表意义 
From  源地址 
To 目的地址  
Subject  邮件主题  
Priority  邮件优先级(High, Low, Normal )  
Attachments 附件 
Bcc  暗送地址  
Cc  抄送地址 
Body  邮件内容主体  
Bodyformat 邮件格式(Html,Text)  
Bodyencoding  邮件编码(Base64, UUencode) 

  (3).方法 

  在System.Web.Mail名称空间里面最重要的方法就是SmtpMail对象的Send方法,程序中就是通过调用他来发送邮件的。他的调用有二种方式: 

  i>.直接调用 

  对于SmtpMail对象的Send方法只要有四个参数就可以完成调用,就是说,只要有四个正确的参数就能够发送电子邮件了。具体调用格式如下: 

   SmtpMail.send(“邮件源地址”,”邮件目标地址”,”邮件主题”,”邮件内容”) 


  但是这种调用过于简单,只能满足简单邮件的发送,对于复杂的邮件,就要用第二中方法来调用: 

  ii>.把MailMessage对象作为参数来调用,具体调用如下: 

   SmtpMail.send(MailMessage) 

  由于MailMessage对象属性多,所以这种调用可以使邮件内容更加丰富,一般采用这种方式来发送邮件。在下面的例子里面就是用这种调用方式。 

  三.设计思路及步骤: 

  首先要说明的是在此ASP.NET 程序里面我们用的程序语言是Visual Basic .NET。 

  第一步:要包括名称空间System.Web.Mail,加入在程序中使用的程序语言类型: 



 


  第二步:初始化SmtpMail、MailMessage对象: 

Dim mailObj AS new MailMessage 

Dim smtp AS new SmtpMail 

‘定义SMTP服务器的名称 

Smtp.smtpserver="smtp.yeah.net" 

‘定义邮件的发送地址 

mailObj.From = “zhangchulan@yesky.com” 

‘定义邮件的接收地址 

mailObj.To =” majinhu@yesky.com” 

‘定义邮件的暗送地址 

mailObj.Bcc=”majinhu@163.net” 

‘定义邮件的抄送地址 

mailObj.Cc=”majinhu@yesky.com” 

‘定义邮件的主题 

mailObj.Subject = "我的邮件系统,欢迎使用!" 

‘定义邮件的主体 

mailObj.Body = "这里是邮件的主体!" 

‘邮件以 HTML的格式发送 

mailObj.BodyFormat = MailFormat.Html 

‘定义邮件的有限级,在此设定为高 

mailObj.Priority = MailPriority.High 

‘给发送的邮件附加上一个附件 

mailObj.Attachments.Add(new MailAttachment("c:test.doc")) 


  第三步:发送邮件 

Smtp.Send(mailObj)  
四.程序源代码 

[tr=#ebe9eb][td]<SCRIPT language=VB RUNAT="server"> <br>
<br>
Sub SendMail (Obj As Object, E As EventArgs) <br>
<br>
Dim mailObj AS new MailMessage <br>
<br>
Dim smtp AS new SmtpMail <br>
<br>
'定义SMTP服务器的名称 <br>
<br>
Smtp.smtpserver="smtp.yesky.com" <br>
<br>
'定义邮件的发送地址 <br>
<br>
mailObj.From = "zhangchunlan@yesky.com" <br>
<br>
'定义邮件的接收地址 <br>
<br>
mailObj.To ="majinhu@yesky.com" <br>
<br>
'定义邮件的暗送地址 <br>
<br>
mailObj.Bcc="majinhu@163.net" <br>
<br>
'定义邮件的抄送地址 <br>
<br>
mailObj.Cc="majinhu@yesky.com" <br>
<br>
'定义邮件的主题 <br>
<br>
mailObj.Subject = "我的邮件系统,欢迎使用!" <br>
<br>
'定义邮件的主体 <br>
<br>
mailObj.Body = "这里是邮件的主体!" <br>
<br>
'邮件以HTML的格式发送 <br>
<br>
mailObj.BodyFormat = MailFormat.Html <br>
<br>
'定义邮件的有限级 <br>
<br>
mailObj.Priority = MailPriority.High <br>
<br>
'给发送的邮件附加上一个附件,请确定在C盘的根目录下有test.doc文件 <br>
<br>
mailObj.Attachments.Add(new MailAttachment("c:test.doc"))
<br>
<br>
Smtp.Send(mailObj) <br>
<br>
End Sub <br>
<br>
</SCRIPT> 
[/td][/tr]
更多精彩内容其他人还在看

.NET Core源码解析配置文件及依赖注入

这篇文章我们设计了一些复杂的概念,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等
收藏 0 赞 0 分享

.NET Corek中Git的常用命令及实战演练

这篇文章将通过故事的形式从Git的历史谈起,并讲述Git的强大之处。然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制
收藏 0 赞 0 分享

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

如何利用FluentMigrator实现数据库迁移

这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

ASP.NET Core利用Jaeger实现分布式追踪详解

这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解.net core webapi 前后端开发分离后的配置和部署

这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

这篇文章主要介绍了ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

.net 4.5部署到docker容器的完整步骤

这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

.net core并发下线程安全问题详解

这篇文章主要给大家介绍了关于.net core并发下线程安全问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多