zoukankan      html  css  js  c++  java
  • 用ASP.NET 做自己的邮件发送系统 碧血黄沙

    如果要你用ASP来做一个邮件发送系统,你一定认为这是一个比较复杂的工作。其实也的确是这样。但当他的后继产品ASP.NET被推出以后,他的强大功能就使的这一切就变的相对简单了。真的这样神奇么?我们就通过ASP.NET做一个邮件发送系统,看看到底有什么奥秘,是不是真的简单。

      一.运行环境

      虽然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,加入在程序中使用的程序语言类型:

    <%@page language="VB" %>

    <% @Import Namespace = "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)
     四.程序源代码

    <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>
    新站上线--咱地里 www.zandili.com 科技博客
  • 相关阅读:
    [转]GPS原始数据说明
    [转]标准USB,MiniUSB接口定义
    warning C4819: 该文件包含不能在当前代码页(936)中表示的字符
    with用法
    turn out用法
    keep用法
    Stop doing和Stop to do和Stop...from doing有什么不同
    figure用法
    wanna用法
    seem用法
  • 原文地址:https://www.cnblogs.com/airfey/p/239833.html
Copyright © 2011-2022 走看看