"顶易中国"整理邮件发送详解

转载 2013年09月02日 14:25:46
  电子邮件在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操作,捕捉可能出现的异常。

 

相关文章推荐

Android邮件发送详解源代码

  • 2011年11月21日 08:44
  • 46KB
  • 下载

阿里云单邮件发送 - 整理说明文档

【简述】: 大家好,都说用网上插件,很方便,手册上面写的都有,但是我为什么感觉对于我一个初级程序猿妹妹来说,我好多看不懂,有的时候不知道去哪找,因为一方面我们项目中用到的东西好多都是大神封装好的,而我...

Intent机制及详解-调用系统功能,邮件发送方式,各种文件打开方法

> 打开Android手机安装的邮件客户端,可选择 Uri uri = Uri.parse("mailto:test@test.com"); Intent intent = new Intent(In...
  • ShareUs
  • ShareUs
  • 2016年08月04日 16:24
  • 2853

【Oracle BIEE】 邮件发送功能详解

【背景】           最近在研究B

C#邮件发送详解(适合初学者)

通过.Net FrameWork 2.0下提供的“System.Net.Mail”可以轻松的实现,本文列举了3种途径来发送: 1.通过Localhost; 2.通过普通SMTP; 3.通过SSL的S...

C# 邮件发送类详解

   最近搞了一个关于员工生日邮件提醒的接口。对C#下邮件发送进行了学习,下面和大家分享下我的经验.    基于C#邮件发送的方式有哪几种?    第一种:System.Net.Mail,此类是.Ne...
  • akkook
  • akkook
  • 2011年05月17日 17:04
  • 270

Android邮件发送详解

转载:http://flysnow.iteye.com/blog/1128354           Android中我为什么发不了邮件???我手机里明明有邮件客户端的,可我为什么不能调用它发送...

.net 邮件发送原理及实例以及smtp详解

电子邮件在Internet上发送和接收其实和我们日常生活中的邮寄服务一样:当我们要寄一个包裹的时候,我们首先要找到一个有这项业务的邮局,在填写完收件人姓名、地址等信息之后,包裹就寄到了收件人所在地的邮...
  • brokge
  • brokge
  • 2012年08月27日 16:51
  • 3717

redmine邮件发送功能配置详解

redmine的邮件发送功能还是很有用的。 像项目有更新啦,任务分配啦,都能邮件发送的相关责任人。 我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了。 查了网上的资料,...

Redmine 配置邮件发送功能(windows下详解)

1、到网易注册一个163账号(如:hxkjsend@!63.com); 2、设置POP3/SMTP/IMAP(注:没有开通客户端授权密码是不能开启POP3/IMAP服务的。客户端授权密码跟邮箱登录密码...
  • lulu147
  • lulu147
  • 2015年09月25日 10:53
  • 2979
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:"顶易中国"整理邮件发送详解
举报原因:
原因补充:

(最多只允许输入30个字)