计算机网络——应用层-邮件&SMTP

计算机网络系列博文——目录

因特网电子邮件系统(email)

组成部分

  • 用户代理 邮件客户端,允许用户阅读,回复,转发,保存,撰写报文(电子邮件)
  • 邮件服务器 每个邮件接收方都在某邮件服务器上有一个邮箱,邮箱存储发给该用户的Email,邮箱的消息队列存储等待发送的Email
  • 简单邮件传输协议,SMTP 邮件服务器之间传递消息所使用的协议
  • 发送方代理和发送方服务器间,可通过SMTP,HTTP协议推送报文;
  • 发送方服务器和接收方服务器间,通过邮件传输协议SMTP推送报文;
  • 接收方服务器和接收方代理间,可通过邮件访问协议,如POP3,IMAP,HTTP等拉取报文;

SMTP简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)

用于从发送方邮件服务器发送报文到接收方邮件服务器

参见 [RFC 5321]

  • 古老(1982年有正式RFC文档,但事实上早在此前出现),限制报文的体只能用ASCII表示。传输现代多媒体附件时,要将多媒体数据编码为ASCII码,用SMTP传输完毕后再解码还原为多媒体数据。

  • SMTP一般不使用中间邮件服务器发送邮件,即使两服务器相距甚远也会尝试直接建立连接。

  • 依赖TCP运输层协议,端口:25,使用持久性连接

  • 要求消息必须由7位ASCII码构成

  • SMTP通信双方在TCP连接建立之后,还会进行应用层的握手,SMTP客户端会指示收发双方的邮件地址。

  • SMTP服务器利用CRLF.CRLF确定消息的结束。

  • 若SMTP发送方服务器有多个发往同一接收服务器的报文,它会在同一TCP连接内传输,但在每个报文发送前都进行应用层握手(声明邮件的收发双方)

命令/响应交互模式

  • 命令(command): ASCII文本
  • 响应(response): 状态代码和语句

拉协议(pull protocol)

用户依据协议从服务器上拉取信息,连接由文件接收方发起。如HTTP(的主要功能)

推协议(push protocol)

用户依据协议把文件推送到服务器上,连接由文件发送方发起。如SMTP

SMTP对比HTTP

同:都用于主机间的文件传输
异:

  1. HTTP主要是拉协议,SMTP主要是推协议。
  2. HTTP无编码限制,SMTP要求每个报文(包括报文体)使用7比特的ASCII码格式。
  3. 对于由多个对象组成的文档,HTTP将每个对象封装到独立的报文中,而SMTP把所有报文对象放在一个报文内。

Email消息格式

定义邮件消息本身的格式,包括首部行和报文体

参见 [RFC 5322]

头部行(header)

  • To
  • From
  • Subject 主题,可选的

email头部行不同于SMTP中的命令,尽管它们可能冗余了同样的信息。email from,to头部行是email报文的一部分,而SMTP的from,to命令是SMTP握手协议的一部分。

空行 分隔

消息体(body)
消息本身,只能是ASCII字符

Email消息格式:多媒体扩展 MIME

MIME:多媒体邮件扩展 RFC 2045, 2056
通过在邮件头部增加额外的行以声明MIME的内容类型
额外的头部行包括数据编码方法,多媒体类型,子类型,参数等。

邮件访问协议

用于接收方从接收方邮件服务器上拉取报文。

常用邮件访问协议:

  • Post Office Protocol-Version 3,POP3
  • Internet Mail Access Protocol,IMAP
  • HTTP

POP协议

极为简单的邮件访问协议。带有认证/授权和下载功能。

参见 [RFC 1939]

POP3的包括 特许,事务处理,更新三个阶段

POP3是无状态的

服务器响应

  • +OK [可选的数据]
  • -ERR

认证过程

用户代理以明文形式发送用户名和口令以鉴别用户

客户端命令

  • User:声明用户名
  • Pass: 声明密码

事务阶段

用户代理拉取报文
获取服务器上的报文信息
将报文标记为待删除

  • List:列出消息数量
  • Retr:用编号获取消息
  • Dele: 删除消息
  • Quit

更新阶段

发生在用户发出quit命令后,删除那些被用户标记为待删除的报文

IMAP协议

比POP3功能更为强大也更为复杂的邮件访问协议

所有消息统一保存在一个地方:服务器
允许用户利用文件夹组织消息
IMAP支持跨会话(Session)的用户状态

HTTP协议

现今基于Web的电子邮件都使用HTTP协议,此时用户代理就是普通的浏览器。
用户和邮件服务器间的报文传输都通过HTTP进行,而邮件服务器间的报文传输仍通过SMTP进行。

邮件发送过程

  1. 发送方用户代理用SMTP(或HTTP)将邮件推送至发送方邮件服务器;
  2. 发送方邮件服务器用SMTP将邮件推送至接收方邮件服务器;具体地,发送方邮件暂存与发送方邮件服务器中,发送方邮件服务器会周期性的尝试连接接收方服务器,若多次尝试失败,则返回给发送方一个错误信息
  3. 接收方邮件服务器分发邮件给接收方;具体地,接收方通过邮件访问协议从接收方邮件服务器上拉取邮件。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容