邮件的发送和接收过程-----简单邮件传输协议(SMTP)和邮件读取协议!!!
图中就是电子邮件的系统结构
以用户A向用户B发送邮件为例
用户A向用户B发送邮件,首先用户A利用由用户代理撰写邮件,包括填写收件人邮箱地址等,然后基于SMTP将邮件发送到其注册的邮箱服务器A的外出邮件列队中,等待邮件服务器A依次从列队中取出邮件,并基于SMTP发送邮件。当发送到用户A的邮件时,邮件服务器A首先从收件人邮箱地址中解析出接收邮件的服务器(即邮件服务器B)的域名或者IP地址,然后将邮件发送给邮件服务器B,邮件服务器B将接收到的邮件存放到用户B的邮箱中,用户B利用用户代理连接服务器B上运行邮件读取服务,基于邮件读取协议,将其邮箱中的邮件传输到本地,或者对邮箱中的邮件进行阅读,阅读移动等操作。
简单理解几个概念
SMTP: 简单邮件传输协议 ,一般默认端口号为25
用户代理: 用户代理的主要功能是支持用户撰写,显示,处理和收发邮件,为用户阅读,回复,转发,保存和撰写邮件等提供操作环境。
邮件读取协议: 由于SMTP是“推送”协议,所以不能用户用户从自己的邮箱中读取邮件的操作。当中户需要访问自己的邮箱,读取其中的邮件时,所使用的应用层协议就是邮件读取协议。
目前邮件系统中比较流行的邮件读取协议有:POP3(第三版的邮局协议),IMAP(互联网邮件访问协议)和HTTP协议。
SMTP作为电子邮件系统的核心应用层协议,具有以下特点
SMTP只能传送7位ASCLL码文本内容,包括SMTP命令,应答消息以及邮件内容。因此,SMTP不能直接传送可执行文件或者其他的二进制对象(如图像,声音,视频等)包括其他非英语国家的文字,都无法通过SMTP直接传送。在通过SMTP传送这类内容时,必须将这些内容转换为7位ASCLL码文本形式,接收一方再将这些内容还原。SMTP发送邮件时内容中不能包含“”,因为该信息用于标识邮件内容的结束。如果邮件的内容中包含该内容,则SMTP在传输时,需要进行转义。SMTP是“推动”协议,当客户端有邮件发送给服务器时,客户主动与服务器请求建立TCP连接,然后将邮件“推送”给服务器。这与HTTP的“拉动”协议有很大的区别。SMTP使用的TCP连接是持久的,在SMTP的邮件传输阶段,在客户完成一封邮件传输后,并不要求必须进入关闭阶段。如果客户还有邮件需要继续向同一个服务器发送,则可以利用已建立的TCP连接继续发送后续的邮件,直到没有邮件发送为止。