拼吾爱程序人生

首页 » .Net编程 » Visual Studio.NET » 基于.NET 1.x 框架的电子邮件收发
cobra - 2008-8-3 14:38:00
电子邮件在Internet上发送和接收其实和我们日常生活中的邮寄服务一样:当我们要寄一个包裹的时候,我们首先要找到一个有这项业务的邮局,在填写完收件人姓名、地址等信息之后,包裹就寄到了收件人所在地的邮局,那么对方取包裹的时候就必须去这个邮局才能取出。同样的,当我们发送电子邮件的时候,这封邮件是由邮件发送服务器(任何一个都可以)发出,并根据收信人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收信人要收取邮件也只能访问这个服务器才能够完成。


电子邮件工作原理

      电子邮件的工作过程遵循客户-服务器模式。每份电子邮件的发送都要涉及到发送方与接收方,发送方式构成客户端,而接收方构成服务器,服务器含有众多用户的电子信箱。发送方通过邮件客户程序,将编辑好的电子邮件向邮局服务器(SMTP服务器)发送。邮局服务器识别接收者的地址,并向管理该地址的邮件服务器(POP3服务器)发送消息。邮件服务器识将消息存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的电子信箱来查收邮件。
    通常Internet上的个人用户不能直接接收电子邮件,而是通过申请ISP(Internet Service Provider的缩写,意为“Internet服务提供商”)主机的一个电子信箱,由ISP主机负责电子邮件的接收。一旦有用户的电子邮件到来,ISP主机就将邮件移到用户的电子信箱内,并通知用户有新邮件。因此,当发送一条电子邮件给一另一个客户时,电子邮件首先从用户计算机发送到ISP主机,再到Internet,再到收件人的ISP主机,最后到收件人的个人计算机。
      ISP主机起着“邮局”的作用,管理着众多用户的电子信箱。每个用户的电子信箱实际上就是用户所申请的帐号名。每个用户的电子邮件信箱都要占用 ISP主机一定容量的硬盘空间,由于这一空间是有限的,因此用户要定期查收和阅读电子信箱中的邮件,以便腾出空间来接收新的邮件。


      电子邮件在发送与接收过程中都要遵循SMTP、POP3等协议,这些协议确保了电子邮件在各种不同系统之间的传输。其中,SMTP负责电子邮件的发送,而POP3则用于接收Internet上的电子邮件。

      最简单的邮件发送流程如图:

 附件: 您所在的用户组无法下载或查看附件
       


如果将这个网络分的更细一点,其具体的流程图如下:

 附件: 您所在的用户组无法下载或查看附件
                 


当然在我们的实际的应用中,特别是架设比较庞大的邮件系统的时候,涉及的技术更多、更复杂,如果是多台收件服务器、多台发件服务器,就要再附加一台服务器做负载均衡。里面还要涉及防火墙、垃圾过滤一些安全问题。尽管这些不是我们平时能够的用的着的,但是了解这些还是必须的。



--------------------------------------------------------------------------------

ASP.net发送邮件     

      电子邮件是最初的网络通信技术,在信息技术高速发展的今天,电子邮件已经作为一种不可或缺的通信方式深入到了企业的各个层面。最常见的就是我们熟知的bug报告、密码重置通知、申请确认等。特别是我们在从事企业软件开发的时候,常常要用到电子邮件技术。


      而微软的ASP.NET很好的将其进行了封装,使得发送电子邮件十分便捷。在.net框架1.x版本中ystem.Web.Mail已经实现了这一点。但是其通过的是第三方控件实现的,具体的代码会在后面介绍。在后来的2.0版本已经将其很好的封装在System.Net.Mail中,在这里面有最核心的两个类,即MailMessage和SmtpClient。 

      · MailMessage:描述一个电子邮件消息;它拥有From,To,Subject,Body,Attachments等属性;

      · SmtpClient:把一个指定的MailMessage实例发送到一个指定的SMTP服务器。


      我们只要将对象的属性赋值,就能顺利发送一封电子邮件了。流程图如下:


 附件: 您所在的用户组无法下载或查看附件
                       

    注意:在邮件发送的过程中会产生异常,比较常见的就是SmtpException,所以发送一定要进行try,catch操作,捕捉可能出现的异常。


--------------------------------------------------------------------------------

初始化MailMessage实例:

Code


Gmail Code

Code


效果图:


 附件: 您所在的用户组无法下载或查看附件


.NET 1.x 框架中的发送电子邮件源码

Code

Code


原文出处:http://www.cnblogs.com/yank/archive/2008/08/03/1258428.html

 您可能对 [Visual Studio.NET] 的这些文章也感兴趣:

保护你的代码——谁动了我的组件?
五种常见的ASP.NET安全缺陷
提高ASP.Net应用程序性能的十大方法(一)
提高ASP.Net应用程序性能的十大方法(二)
ASP.NET虚拟主机存在的重大隐患
如何让Visual Studio和web标准联姻
.NET 3.5和VS 2008中的ASP.NET AJAX
有了开源,我们的软件该怎样编译
微软新版开发工具VS 2008 beta2功能定案
几乎一半.NET用户不参与开源
asp.net程序员基本要求
.Net中的反射使用入门
1
查看完整版本: 基于.NET 1.x 框架的电子邮件收发
Modify by pin5i DZNT_ExpandPackage 2.1.3296 2007-2009 pin5i.com
 Total Unique Visitors: