7. 电子邮件

7.1 电子邮件发送和接收过程

(1)图解电子邮件的发送

  ①一个电子邮件系统应具备三个主要组成构件A用户代理(如Outlook)、B邮件服务器、C邮件发送和接收协议(分别为SMTP和POP3协议)(POP3是邮局协议,Post Office Protocol)

  ②邮件服务器必须能够同时充当客户和服务器。如当邮件服务器A向另一个邮件服务器B发送邮件时,A就作为SMTP客户,而B是SMTP服务器;反之,当B向A发送邮件时,B就是SMTP客户,A就是SMTP服务器。

(2)发送/接收过程

  ①发件人打开PC机上的用户代理软件(如Outlook),撰写、编辑邮件,填写对方邮箱并点击“发送”

  ②outlook使用SMTP协议发给发送方的stmp邮件服务器

  ③SMTP服务器收到Outlook发过来的邮件,就把邮件临时存放在邮件缓存队列中,等待发送到接收方的邮件服务器。

  ④SMTP客户通过DNS解析出sohu.com邮件服务器的地址。

  ⑤邮件服务器上的SMTP客户每隔一定时间对邮件缓存扫描一次,如果发现邮件,就使用SMTP的25端口与接收方邮件服务器的SMTP服务器建立TCP连接,然后把邮件缓存队列中的邮件依次发送出去。

  ⑥运行在接收方邮件服务器中的SMTP服务器进程收到邮件后,把邮件放入收件人的用户邮箱中,等待收件人读取。

  ⑦收件人在打算收信时,就运行PC机中的outlook,使用POP3(或IMAP)协议读取发送给自己的邮件。(注意,POP3服务器和POP3客户之间的箭头表示的是邮件传送的方向,但它们之间的通信是由POP3客户发起的)

7.2 电子邮件信息格式

(1)邮件格式:分为信封和内容两大部分。(邮件内容由首部(header)和主体(body)组成。当用户写好首部后,邮件系统自动地将信封所需的信息提取出来并在信封上)

(2)内容首部各关键字

  ①“From:”:填写发送人的电子邮件地址

  ②“To:”:填入一个或多个收件人的电子邮件地址。多个收件人可以写成多行(多个地址用<>隔开,如<abc@sohu.com><def@126.com>)

  ③“Cc:”:抄送一份副本给某人。如给主管领导写一封邮件,并抄送给财务人员。当主管收到后,答复时可以选择“全部答复”,则发送人和财务人员均可收到。有些系统支持秘密抄送(Bcc关键字),这使发件人将邮件副本抄送给某人,但收件人并不知道,Bcc也称为暗送。

  ④“Replay-to:”:对方回信所用的地址。该地址可以与发送人发信时的地址不同。

  ⑤“Date:”:发信日期。可以不填,由系统自动填入。

  ⑥“Subject:”:邮件主题。注意,Subject和Body之间必须有空行(回车),正文结束标记为“.”

7.3 SMTP协议

(1)SMTP常见命令和应答

命令

含义

应答

状态码的含义

HELO

发送方问候收件方,后面是发件人服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表示两台机器可以进行通信,同时状态参数被复位,缓冲区被清空

220

服务就绪

MAIL

开始传送邮件,后面跟发件方邮件地址。该命令会清空有关缓冲区,为新的邮件做准备

250

请求邮件动作正常,完成(HELO、MAIL FROM, RCPT TO、QUIT指令执行成功会返回此信息)

RCPT

后跟收件人邮箱地址,当有多个收件人时,需要多次使用该命令,每次只能指明一个人。

235

认证通过

DATA

该命令之后的数据作为发送的数据。最后以单独的一行“.”来结束整封邮件。

221

正在处理

REST

用来通知收件方复位,所有己存入缓冲存的收件人数据,发件人数据和待传送数据都必须清除。

354

开始发送数据,以.结束(DATA指令执行成功会返回此信息)

NOOP

该命令不影响任何参数,只是要求接收方回答OK,不会影响缓冲区的数据。

500

语法错误,命令不能识别

QUIT

SMTP要求接收方必须回答OK,然后中断传输

550

命令不能执行,邮箱无效

552

中断处理:用户超出文件空间

(2)邮件交换记录(MX记录)

  它指向一个邮件服务器,用于电子邮件系统发送邮件时根据收信人的地址后缀,如abc@sohu.com的后缀为sohu.com)来查找该区域的邮件服务器

(3)手工查看邮件服务器

(4)利用telnet发送邮件

  ①使用telnet给dongqing91@sohu.com发送邮件,并抄送给dongqing081@sohu.com

  ②telnet成功后输入SMTP协议定义的命令和SMTP服务器交互(注意,输入过程出现错误将不能修改!)

7.4 POP3协议和IMAP协议

(1)POP3协议的特点:只要用户从POP服务器读取了邮件,POP服务器就把该邮件删除

(2)IMAP协议(网际报文存取协议)

  ①IMAP是一个联机协议。当用户PC上的客户端打开IMAP服务器的邮箱时,用户可以看到邮件的首部。若需要打开某个邮件,则该邮件才传到用户计算机上。

  ②IMAP最大的好处是用户可以在不同的地方使用不同的计算机随时阅读和处理邮件。

  ③IMAP还允许收件人只读取邮件中的某个部分(如先下载正文,附件中的视频不下载)

7.5 部署企业内部邮件服务器

(1)安装邮件服务器

  ①“Windows组件”→勾选“电子邮件服务”(即POP3服务)

  ②“Windows组件”→双击“Internet信息服务(IIS)” →勾选“SMTP service”

  ③“Windows组件”→双击“网络服务”→勾选“域名系统(DNS)”

(2)在DNS服务器上添加MX记录

  ①在DNS服务器上新建正向查找区域:5iedu.net,并在该区域下创建主机记录“mail”,地址指向192.168.80.10,注意记录类型为主机(A)

  ②在该区域中增加一条MX记录:右击5iedu.net→“新建邮件交换器(MX)”,并在如下对话框中输入邮件服务器名称mail.5iedu.net。

  ③在WinXP上使用nslookup查找5iedu.net区域的邮件服务器。(注意XP的DNS要设置成192.168.80.20)

(4)为用户创建邮箱

  ①打开POP3服务管理工具(可管理邮箱和POP3服务),创建“新域”:点击“新域”→“添加域”→输入5iedu.net,该域名就是用户邮箱后缀

  ②选中刚创建的域→“添加邮箱”→输入邮箱名“admin”和密码,同时勾选“为此邮箱创建关联的用户”→确定(注意下列的提示很重要!),注意本例使用明文身份验证

  ③按同样的方法创建其他邮箱(如teaching@5iedu.com

(5)配置邮件客户端收/发邮件

  ①在XP1机用outlook,在菜单栏的“工具”→“帐号”→“添加”→“邮件”

  ②然后在显示名中输入admin→在电子邮件地址中输入“admin@5iedu.net”→接收服务器和发送邮件器中均填入“mail.5iedu.com”

  ③接着在Internet mail登录中会要求填入帐号和密码,这步很关键。由于本例采用的是明文验证,因此帐号名为admin@5iedu.net(注意,如果是安全密码验证身份,则填入admin即可!)。最后按同样的方法在XP2机上配置邮件teaching@5iedu.net这时就可以admin@5iedu.net互相收发邮件。

7.6 配置内网邮件服务器与Internet互相收/发邮件

(1)配置SMTP服务允许向Internet发送电子邮件

  ①打开IIS,展开“默认SMTP虚拟服务器”→“新建”→“域”,选择“远程”→在域名中填写“*.com”(这意味着该SMTP服务器会将所有com结尾的电子邮件转发到Internet)。

  ②右键“*.com”域→选中“允许将传入邮件中断到此域”和“使用DNS以发送到此域”。

  ③测试:在xp2的outlook客户端写一封邮件给abc@sohu.com

(2)从Internet向内网服务器发送邮件

  ①在Internet上注册一个域名(5iedu.net),添加mail主机(A)记录,地址指向内网的公网地址。同时添加邮件交换记录(MX记录)

  ②将连接internet网的25号端口(TCP)映射物理主机的25端口上(注意,要关掉物理主机的Windows防火墙)

  ③将物理主机的25号端口转发给内网SMTP服务器(放在VMnet8网络中的Win2003虚拟机)。方法是“VMware”→“编辑”菜单→“虚拟网络编辑器”→选择“VMnet8”→“NAT设置”→添加端口转发)。

  ④登录sohu邮箱,并发送一封邮件给admin@5iedu.net,测试是否可以从Internet发邮件到内网的邮件服务器。(说明:Internet的计算机是通过Internet上的DNS解析和端口映射找到内网的SMTP服务器。因此可以发送邮件到内网SMTP服务器中。同理,内网的计算机使用的是内网的DNS解析,所以可将内网邮件发往Internet。)

第9章 应用层(6)_SMTP和POP3/IMAP协议的更多相关文章

  1. 企业邮箱在Android(安卓)系统手机上POP3/IMAP协议的设置方法

    此处以三星(系统版本4.4.2)为例,介绍下使用安卓系统自带的客户端如何设置pop/imap协议方式方法 以下我们将使用test@zhuyuming.so 为测试案例,请您操作时更换成您自己的邮箱账号 ...

  2. [A Top-Down Approach][第二章 应用层]

    [A Top-Down Approach][第二章 应用层] 标签(空格分隔): 未分类 网络应用是计算机网络存在的理由 首先从定义几个关键的应用层概念开始 应用程序所需要的网络服务,客户和服务器,进 ...

  3. 邮件协议POP3/IMAP/SMTP服务的区别

    2016年09月09日 09時51分 wanglinqiang整理 通过网上查找的资料和自己的总结完成了下面的文章,看完之后相信大家对这三种协议会有更深入的理解.如有错误的地方望指正. POP3 PO ...

  4. PostFix使用dovecot支持POP3/IMAP收信

    PostFix只能够收发邮件,以及使用SMTP发送邮件,想要使用POP3/IMAP收信的话必须装其他软件,本文通过配置dovecot让邮件服务器支持POP3/IMAP收信.POP3/IMAP是一种收信 ...

  5. 邮箱基础协议:SMTP/POP3/IMAP

    目录 电子邮件的组成:信封.首部和正文 邮件基础协议 SMTP SMTP 指令 使用 Telnet 模拟 SMTP 发送邮件 POP3 POP3 的生命周期 IMAP 标志消息属性 状态和流程图 IM ...

  6. 设置POP3/SMTP协议 手机绑定邮箱

    例如设置企业邮箱 一.设置POP3/SMTP协议,意思是代收邮件致本地POP3接收邮件服务器:pop.qiye.qq.comSMTP发送邮件服务器:smtp.qiye.qq.com二.设置IMAP/S ...

  7. 常用电子邮件协议服务POP3/IMAP/SMTP/Exchange

    标题: 常用电子邮件协议服务POP3/IMAP/SMTP/Exchange 作者: 梦幻之心星 347369787@QQ.com 标签: [电子邮件, 服务, 协议] 目录: [客户端] 日期: 20 ...

  8. 《计算机网络 自顶向下方法》 第2章 应用层 Part1

    常见的应用层协议有哪些?  HTTP(HyperText Transfer  Protocol):超文本传输协议 FTP(File Transfer Protocol):文件传输协议 SMTP(Sim ...

  9. 第六章 应用层(DNS和http协议详解)

    序言 这是计算机网络基础的最后一篇博文了,大体的从物理层到最上层的应用层做了一个大概的了解,花了也有快1个月的时间了,在本章结尾会给你们我学习该课程的视频资料,我希望能帮到所有想学习想提高自己技术的同 ...

随机推荐

  1. skipper filter 扩展开发

    skipper 的扩展包含filter类型的,以及Predicates ,当然script(lua)脚本也是 这次主要是filter类型的开发 filter 接口约定 格式 filter 至少需要包含 ...

  2. C# to IL 4 Keywords and Operators(关键字和操作符)

    Code that is placed after the return statement never gets executed. In the first programgiven below, ...

  3. Docker—微软微服务

    容器与Docker简介(一)——微软微服务电子书翻译系列 容器与Docker简介(二)什么是DOCKER——微软微服务电子书翻译系列 容器与Docker简介(三)Docker相关术语——微软微服务电子 ...

  4. SAS常用函数

    SAS常用函数 一.数学函数  ABS(x) 求x的绝对值. MAX(x1,x2,…,xn) 求所有自变量中的最大一个. MIN(x1,x2,…,xn) 求所有自变量中的最小一个. MOD(x,y) ...

  5. LoadRunner 压测场景制定以及报告分析

    这里,我们利用 LoadRunner 来制定场景,且以测试 tps 值为导向,主要介绍手工场景 单服务器的业务请求处理能力 tps 值在 10~200 是合理的:如果是访问单接口不走关系型数据库的,访 ...

  6. TypeScript 之 JSX

    https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/JSX.html JSX中,类型断言必须使用as操作符. 类型检查 ...

  7. Hanlp等七种优秀的开源中文分词库推荐

    Hanlp等七种优秀的开源中文分词库推荐 中文分词是中文文本处理的基础步骤,也是中文人机自然语言交互的基础模块.由于中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词. 纵观整个 ...

  8. PHP代码实现3 [函数角度]

    内部函数 标准函数的实现存放在ext/standard扩展目录中. php函数种类 Zend engine中的function的存在形式 123456 struct _zend_execute_dat ...

  9. python re 实例

    #!/usr/bin/env python#_*_coding:utf-8_*_ import reimport timeimport jsonimport MySQLdbimport context ...

  10. XE5 Android 开发数据访问手机端[转]

    把供手机端调用的web服务完成,接下来实现手机端调用webservices获取数据 1.新建firemonkey mobile application 2.选择blank application 3. ...