首页 > 编程知识 正文

邮件传输协议有哪些,邮件传输协议的英文

时间:2023-05-06 17:58:54 阅读:251300 作者:911

文章目录 邮件传输过程邮件的传输流程Webmail使用邮件客户端收发邮件邮件服务器各组件关系图 SMTP协议SMTP命令SMTP应答码SMTP传输流程图电子邮件的信息格式MIME邮件报文示例 POP3协议POP3命令POP3连接POP3客户和服务器会话例

邮件传输过程 邮件的传输流程

通常,一封电子邮件的发送需要经过用户代理、客户端邮件服务器和服务端邮件服务器等三个程序的参与,并使用邮件传输协议(SMTP,POP3或IMAP)来发送和获取邮件
Webmail 电子邮件从A发送到客户服务器是使用HTTP协议。两个邮件服务器之间的传送使用SMTP。邮件从服务端邮件服务器传送到B是使用HTTP协议。
使用邮件客户端收发邮件

电子邮件从A发送到客户服务器是使用SMTP协议。连个邮件服务器之间的传送使用SMTP。B从服务端邮件服务器获取邮件使用POP3或IMAP协议。常见的邮件客户端有Foxmail,Outlook,Express等。

邮件服务器各组件关系图 MUA(MailUserAgent):用户代理,提供邮件编辑,查看功能;MTA(MailTransferAgent):邮件传输代理,负责传送和接收邮件-MDA(MailDiliveryAgent):邮件投递代理,负责将MTA接收到的邮件传递到用户邮箱或转递其他MTA,兼具有过滤功能。
SMTP协议 SMTP使用客户/服务器方式,负责发送邮件的SMTP进程是SMTP客户,而负责接收邮件的SMTP进程是SMTP服务器,当两个进程建立了TCP连接后,电子邮件就能通过该标准准确无误地传输。SMTP协议是基于文本的协议,通过SMTP发送地电子邮件都是普通文本格式的,不支持声音、图像等非文本信息,但可以通过MIME标准将此类信息进行编码后再通过SMTP传输SMTP规定了14条命令和21种应答信息。每条命令用4个字母组成,而每一种应答信息一般只有一行信息,由一个3位数字的代码开始 SMTP命令

SMTP简捷,命令很少,常用的只有以下的8条命令,这些命令由客户端发送请求给服务端

命令描述HELO用于启动邮件传输过程MAIL FROM用于标识发言人,为收信者回复时可用的电子邮件地址RCPT TO用于标识单个接收人,在MAIL命令后面可以有多个RCPT命令DATAQUIT用于终止客户端与服务器之间的连接RSET用于中止当前的邮件事务并使两端复位VRFY用于验证指定的用户/邮箱是否存在,即验证接收方地址是否正确NOOP空操作命令SMTP应答码

每一条SMTP命令都会返回一条SMTP响应,有服务端返回给客户端

代码描述211系统状态或系统帮助响应214帮助信息220服务准备就绪221关闭连接250请求操作就绪251非本地用户,转发到354开始邮件输入,以.结束421服务不可用450操作未执行:邮箱忙451操作中止:本地错误452操作未执行:存储空间不足500命令不可识别或语法错501参数语法错502命令不支持503命令顺序错504命令参数不支持550操作未执行:邮箱不可用551非本地用户,请尝试552操作中止:存储空间不足553操作未执行:邮箱名不正确554传输失败SMTP传输流程图

电子邮件的信息格式

每一封电子邮件的结构格式为:
报文头(Header)
分隔邮件头与邮件体的空行
报文体(Body)

报文头是一些控制信息,它是由一系列的头字段组成,每个头字段的结构格式是:
字段名(field-name): 字段体(field-body)

包括收方和发方的地址,发送时间等,常用的头字段有:
Date域:记录邮件发送日期(本地主机的日期和时间);
Subject域:邮件主题;
From域:发信人邮件地址;
To域:收信人邮件地址;

报文体是用户邮件内容,由用户自由撰写。但SMTP只支持传输7位ASCII码的英文字符,有很大局限性,后来邮件系统就扩展了MIME

MIME MIME扩展了基本的面向文本的Internet邮件系统,在不改动现有邮件协议的情况下,实现了用标准的文本格式邮件传输非文本(二进制)数据的功能。MIME的原理是将二进制数据转化为文本格式,然后再进行传输MIME扩包括三部分内容:新增了5个首部字段名,这些字段提供了邮件的主题信息;新增了许多邮件内容,对多媒体的表示方法进行标准化;定义了编码方法,可对任何内容进行准换。 邮件报文示例

Date :Wed,18Dec201312:32:22+0800Subject :helloMessage-ID:<afsoltse2peje01bq0qaovc6.1387341142553@email.android.com>From :"zfc@gozone.com"<zfc@gozone.com>To :xkh@gozone.comMIME-Version:1.0Content-Type:text/plain;charset=utf-8Content-Transfer-Encoding:base64CnRoaXMgaXMgYSB0ZXN0IG1haWwuCgoK5Y+R6Ieq5oiR55qE5bCP57Gz5omL5py6. POP3协议 POP是一种邮件接收协议,其作用是:当用户计算机与支持POP协议的电子邮件服务器连接时,把存储在该服务器的电子邮箱中的邮件准确无误地下载到用户的计算机中。POP3属于离线式协议,即不能对邮件进行在线操作,必须下载到本地才能进行处理。POP协议已发展到第三版,称作POP3。POP3与SMTP一样都是请求响应协议,命令与响应也都是用NVTASCII格式的文本表示。POP3响应由一个状态码和其后的附加信息组成,只有两种状态码:“+OK”(正确)和“-ERR”(失败)

POP3命令 命令及格式描述USERusername指定用户名PASSpassword指定密码STAT询问邮箱状态(如邮件总数和总字节数等)LIST[Msg#]列出邮件索引(邮件数量和每个邮件大小)RETR[Msg#]取回指定的邮件DELE[Msg#]删除指定的邮件NOOP空操作RSET重置所有标记为删除的邮件,用于撤销DELE命令QUIT提交修改并断开连接POP3连接

在POP3中,客户端与服务器连接时有三种处理状态

身份验证状态事务处理状态更新状态 当客户端连接到服务器的110端口,并建立起TCP连接后,即进入身份验证状态,需要使用USER和PASS命令将用户名和密码提供给服务器。通过身份验证之后,即转入事务处理状态,这时客户端可以发送POP3命令进行相应操作,服务器会接收命令并做出响应。操作完成之后,客户端发出QUIT命令,则进入更新状态,服务器确认用户的操作,更新邮件存储区,同时关闭客户端与服务器之间的连接 POP3客户和服务器会话例 S:<在TCP端口110等待连接>C:<打开TCP连接> -telnet<服务器域名>110S:+OK oarpop3serverreadyC:USER your_useridS:+OK your_useridiswelcomehereC:PASS your_passwordS:+OKyour_userid’s maildrophas2messages (320octets)S:.C:STATS:+OK <邮件数量><总大小>C:RETR 2S:+OK 200octetsS:报文2的内容S:.C:DELE 2S:+OK message2deleted.......
Session超时问题怎么解决通过JavaScript实现扑克牌游戏的示例代码一文让你快速了解JavaScript栈

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。