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

转载 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操作,捕捉可能出现的异常。

 

真实网络环境下使用易邮搭建网络邮件服务器并测试通过

条件:自己注册的域名:huyouni.cn,购买阿里云的公网虚拟主机的ip:114.215.154.53 实验环境:本地电脑,win7 旗舰64位,服务器:windows server 201264位...
  • u010476739
  • u010476739
  • 2014年10月21日 00:43
  • 11568

本地玩邮件服务器和邮件客户端

1.准备工作 下载并安装易游邮件服务器 下载并安装foxmail邮件客户端 2.具体操作: 服务求端操作 (1)打开服务器软件:进行系统设置 (2)新建两个账号 如上设置得到...
  • HYM1987
  • HYM1987
  • 2014年06月05日 07:41
  • 1970

邮件开发:SMTP协议详解

SMTP命令及格式 说     明 Ehlo ehlo命令是SMTP邮件发送程序与SMTP邮件接收程序建立连接后必须发送的第一条SMTP命令,参数表示SMTP邮件...
  • xxssyyyyssxx
  • xxssyyyyssxx
  • 2016年01月07日 09:48
  • 1688

舌尖上的中国第一季整理笔记

自然的馈赠 云南香格里拉----松茸 浙江遂昌----竹笋、冬笋 柳州----大头田笋 云南大理----诺邓盐、诺邓火腿 湖北嘉鱼----莲藕、冬天吃藕汤、藕汤煨排骨 吉林查干湖----冬捕鱼 广西...
  • huwei0518
  • huwei0518
  • 2015年02月06日 13:51
  • 657

舌尖上的中国第二季整理笔记

脚步 西藏林芝----天麻、灵芝、酥油蜂蜜、蜂蜜鳗鱼、桂花糯米藕、秘制酒心冰激凌 四川----麻辣香肠、烟熏腊肉、乐山嫩豆花 昆明----小花菇(香菇中的王者)、香菇酿 浙江台州----望潮菌菇煲、...
  • huwei0518
  • huwei0518
  • 2015年02月06日 13:51
  • 1408

JavaMail系列(三) 使用SMTP协议发送电子邮件

package org.yangxin.study.jm;    import java.io.File;  import java.io.FileInputStream;  import java....
  • jarniyy
  • jarniyy
  • 2016年05月04日 15:46
  • 1405

排序算法(七):JAVA实现堆排序

堆的定义:如果一棵完全二叉树,其父节点的值总是≤\leq或≥\ge它的两个子节点的值,就称这个树为堆。其中,如果根节点的值最大,成为大顶堆;根节点的值最小,成为小顶堆。   堆排序是一种树形选择排序...
  • sinat_36713319
  • sinat_36713319
  • 2017年07月31日 10:41
  • 103

在web中实现邮件发送功能

在web站点中也可以集成邮件客户端软件的功能,以便web站点的注册用户可以通过web页面来收发电子邮件,例如,sina和sohu等大型门户网站都会为会员提供了通过web页面来收发电子邮件的功能。对于一...
  • jiangtao7913
  • jiangtao7913
  • 2016年02月01日 00:54
  • 4153

Java发送邮件

163邮箱发送 package test; import java.util.Date; import java.util.Properties; import javax.mail.Message...
  • u011971132
  • u011971132
  • 2015年11月20日 10:13
  • 628

vb.net实现邮件发送

界面                          代码 Imports System.Net.Mail Imports System.Text Imports System.Security...
  • kwy15732621629
  • kwy15732621629
  • 2016年05月02日 15:19
  • 1579
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:"顶易中国"整理邮件发送详解
举报原因:
原因补充:

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