主题:  .Net可以不借助组件发邮件

=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#12002/5/17 15:18:33
大家研究过没有,很酷啊!
——————————————————————————————————————
如果要你用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 Server、.Net FrameWork

二.什么样的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出现以后,这一切就变的简单起来。只用下面一行代码,就可以选择驱动器的任何文件。


3.发送E-mail
SmtpMail.SmtpServer = "" '指定使用缺省的SMTP服务器
SmtpMail.Send(MailObj) '发送E-mail


四.程序完整的源代码
<% @Import Namespace="System.Web.Mail" %>





欢迎用ASP.NET来发送E-mail


请输入邮件发送地址:


请输入邮件目的地址:


请输入邮件抄送地址:


请输入邮件密送地址:


请输入邮件主题:


请输入邮件主体:
Columns="40" Rows="10" runat="server" />


请加入附件名称:

onClick="SendButton_Click" />



您的邮件已经成功发送,欢迎您的再次使用!






五.至此一个完整的E-mail发送系统就完成了。如果你的机器达到了本文前面提到的运行环境,那么就建立一个指向此aspx文件的虚拟目录,连接上Internet,在浏览器里运行此程序,就可以方便的完成E-mail的发送了。

编辑历史:[这消息被ridincal编辑过(编辑时间2002-05-17 15:26:29)]


I''MAD

职务:普通成员
等级:8
金币:11.0
发贴:9502
#22002/5/17 16:01:40
完全没错,眼镜兄你也在研究ASP.NET吗?



5D荣誉斑竹

职务:普通成员
等级:1
金币:1.0
发贴:131
#32002/5/17 17:28:38
呵呵,很好,我修改为C#版用用

编辑历史:[这消息被高处不胜寒编辑过(编辑时间2002-05-17 17:36:56)]


=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#42002/5/17 21:46:43
hmily在上个帖子中说
引用:
完全没错,眼镜兄你也在研究ASP.NET吗?


当然,我正在用C#和ASP.Net写一个和5D一样(甚至功能更强)的论坛,已经做了大半,现在正在研究论坛的邮件通知、邮件发送丢失密码、邮件发送页面的功能,有没有兴趣?



I''MAD

职务:普通成员
等级:8
金币:11.0
发贴:9502
#52002/5/17 22:39:51
当然有兴趣,不过我还只是开始入门而已,呵。。。有空多多教教我吧。先说说你用什么资料来学的,我买的书全是废物。 :D



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#62002/5/17 23:38:09
不敢当,我也很多不明白的。
去年11月份参加了一次微软的.Net培训,收获不小。
看《C#参考大全》和MSDN,有问题就到MS的新闻组发贴讨论,慢慢摸索吧。



I''MAD

职务:普通成员
等级:8
金币:11.0
发贴:9502
#72002/5/18 11:23:47
ridincal在上个帖子中说
引用:
不敢当,我也很多不明白的。
去年11月份参加了一次微软的.Net培训,收获不小。
看《C#参考大全》和MSDN,有问题就到MS的新闻组发贴讨论,慢慢摸索吧。 :D

倒,你住哪里啊,微软的.Net培训我不知道。但知道长沙这边没有,痛苦,书难找啊。



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#82002/5/18 12:17:21



I''MAD

职务:普通成员
等级:8
金币:11.0
发贴:9502
#92002/5/18 14:29:31
那个ASP.NET完全入门下不了



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#102002/5/18 15:17:54
我计算机里好像有,我帮你找找……



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886

7877767

职务:普通成员
等级:2
金币:1.0
发贴:528
#122002/5/20 20:17:38
斑竹,我看了看书感觉asp.net好像比asp好学,所以我也学你改行了,放弃asp学asp.net...



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
#132002/5/20 23:06:53
呵呵,不一定比asp好学啊!



我是小呆瓜

职务:普通成员
等级:3
金币:1.0
发贴:716
#142002/5/22 15:11:26
这里发送邮件的代码好象都没有要设置邮件服务器的用户名和密码,真的不需要吗?我在网上搜索了以下好象有的也没有要设置的,可是我写代码的时候好象要啊,要不然跟本不能发送啊,这是怎么回事啊???????????????