欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-03-13 22:00:01
一.运行环境    虽然microsoft公司推出visual studio .net已经有一段时间了,但.net framewor...
一.运行环境 

  虽然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]