• 因特网中的电子邮件系统(SMTP)


    一、电子邮件系统组成

    电子邮件系统主要有三个组成部分:用户代理邮件服务器简单传输协议SMTP。下面是这三个部分的详细作用。

    1.用户代理

    用户代理主要是用来代替用户接收和发送邮件。当用户写好邮件要发送时,该用户的用户代理会向邮件服务器发送邮件,然后邮件放在邮件服务器的外出报文队列中。接收邮件时,从邮件服务器上面的邮箱中获取。

    2.邮件服务器

    邮件服务器是电子邮件体系结构的核心。

    每个用户都会在某个邮件服务器上有一个邮箱邮箱管理着该用户收到的电子邮件。

    一个典型的邮件发送过程如下:

    从发送方的用户代理开始,传输到发送方的邮件服务器,再传输到接收方的邮件服务器,然后在这里被分发到接收方的邮箱中。当接收方要读取邮件时,接收方的邮件服务器会对其进行验证(通过用户名和密码)。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eIA6jjvQ-1658811434464)(E:/Blog/lansg/source/img/image-20220726125122230.png)]

    Tips:发送方的邮箱也必须能处理接收方服务器的故障。

    如果发送方的服务器不能将邮件交付给接收方的服务器,那么发送方的服务器会在一个报文队列中保持该报文并尝试再次发送,如果一直不成功则删除该报文并通知发送方。

    因为我们每个人随时都有可能发送电子邮件,所以如果一个人想要收到另一个人发送的电子邮件的话,那么他的邮件服务器就必须一直保持开机,这对于我们普通用户来说肯定是不现实的。

    所以一般来说我们的本地PC上只运行一个用户代理程序,用它来访问邮件服务器上的邮箱,而该邮件服务器由该用户的ISP维护(因此邮件服务器是共享的)。

    3.简单邮件传输协议SMTP

    SMTP使用TCP可靠数据传输服务,运行在发送方邮件服务器的客户端接收方邮件服务器的服务器端。每台邮件服务器上既运行SMTP的客户端也运行SMTP的服务器端。


    二、SMTP对比HTTP

    这两个协议都用来一个主机向另一个主机传送文件。HTTP是用来服务器向客户端(浏览器)传送文件,SMTP是用来一个邮件服务器向另一个邮件服务器传输文件(电子邮件)。

    • 对于HTTP来说,一般是将资源存放在服务器上,然后客户端从服务端拉取信息,TCP连接是想接收文件的主机发起的,所以HTTP是一个拉协议

    • 对于SMTP来说,主要是一个邮件服务器将电子邮件发送给另一个邮件服务器,TCP连接是想发送文件的主机发起的,所以SMTP是一个推协议

    但是这样就出现了一个问题,假如接收方要获取邮件,那么他如何通过本地PC上的用户代理,获取到对应ISP的邮件服务器上的邮件呢?这里肯定是不能用SMTP的,因为取邮件是一个拉操作,而STMP是一个推协议。这时就需要一些其他的协议了,例如第三版的邮局协议POP3因特网邮件访问协议IMAP以及HTTP(基于web的电子邮件)

    POP3协议为例,当用户代理(用户)打开了一个到邮件服务器的TCP连接后,POP3开始工作,主要有以下三个阶段:特许事务处理更新

    • 特许阶段:邮件服务器通过用户代理发送的用户名和密码(明文形式)鉴别用户。
    • 事务处理阶段:用户代理获取邮件,同时可以对邮箱中的邮件进行标记删除等操作。
    • 更新阶段:用户发出quit命令,结束此次POP3会话,之后进入更新阶段;该邮件服务器可以对被标记为删除的邮件进行删除,以及一些其他操作进行更新。
  • 相关阅读:
    linux 中 tar \ zip 解压错误后撤回
    python 基础练习题
    Linux下Docker安装几种NoSQL和MQ
    Android安全与隐私相关特性的行为变更分析
    【数据库】时区及JDBC的时区设置
    相控阵天线(四):阵列天线波束赋形(遗传算法、粒子群算法、进化差分算法)
    Linux计划任务与日志
    数据结构-字符串详解
    传感器的基本特性
    [Vue项目实战]尚品汇 -- 初始化项目以及项目的配置与分析
  • 原文地址:https://blog.csdn.net/lans_g/article/details/125992458