使用过邮箱服务,你对`SMTP`、`POP3`、`IMAP`三大协议有过了解吗?

使用过邮箱服务,你对SMTPPOP3IMAP三大协议有过了解吗?

前言

相信大家平常在开发自己的网站时,都有使用过短信验证码注册这个功能吧😄,市面上常见的短信验证码主要有阿里云或者腾讯云的SMS服务,或者直接使用邮箱短信发送短信验证码(比如QQ邮箱、网易邮箱),而博主最近就在项目中使用到了邮箱注册,于是顺便了解一下在邮箱服务中这三大常见协议:SMTP、POP3、IMAP,同时整合一下邮箱验证码注册……

SMTP协议介绍

  • 什么是 SMTP 协议

    SMTP(Simple Mail Transfer Protocol)属于 TCP/IP 协议族,是一种用于发送电子邮件的网络协议,默认端口号为25。它定义了电子邮件客户端和邮件服务器之间的通信规则,以便可靠地传递邮件;同时SMTP协议是一种面向文本的协议,使用简单的命令和响应交互。它提供了可靠的邮件传输机制,并支持身份验证、加密等功能,以确保邮件的安全性和可信性。

    注意:SMTP协议只用于发送邮件,如果你想要接收邮件,需要使用其他协议,如 POP3 或 IMAP。

  • SMTP 协议一般的工作流程

    • 连接建立:邮件客户端(如电子邮件应用程序)与邮件服务器建立TCP连接。默认情况下,SMTP使用TCP端口 25 进行通信。
    • 会话开始:建立连接后,邮件客户端向邮件服务器发送命令来启动SMTP会话。常见的命令包括EHLO(握手标识)、HELO(握手)和STARTTLS(启用安全传输层)等。
    • 发送发件人信息:邮件客户端发送一个MAIL FROM命令,指定发件人的邮箱地址。
    • 接收收件人信息:邮件客户端发送一个RCPT TO命令,指定一个或多个收件人的邮箱地址。
    • 传输邮件内容:邮件客户端发送DATA命令,开始传输邮件的内容。该内容包含邮件标题、正文、附件等信息。邮件内容以特定的格式(如MIME)进行编码。
    • 结束邮件传输:邮件客户端在邮件内容结束后发送一个"."字符,表示邮件传输结束。
    • 断开连接:一旦邮件成功传输到邮件服务器,邮件客户端可以发送QUIT命令来终止SMTP会话,并关闭与服务器的连接。

POP3协议介绍

  • 什么是 POP3 协议

    POP3(Post Office Protocol 3)属于 TCP/IP 协议族,是一种用于接收电子邮件的协议,默认端口号为110。它允许用户从邮件服务器上下载邮件到本地设备,以便在离线状态下查看和管理邮件。

    注意:POP3是一种简单的邮件接收协议,它只用于从服务器下载邮件到本地设备。它不提供同步功能,因此在多个设备上查看邮件时,邮件状态(如已读、标记)不会同步。另外,对于某些邮件服务器来说,还有一个扩展版本的 POP3 协议,称为 POP3S(POP3 over SSL/TLS),它使用加密的 SSL/TLS 连接进行通信,以增强安全性。

  • POP3 协议一般的工作流程

    • 连接建立:邮件客户端与邮件服务器建立 TCP 连接。默认情况下,POP3 使用 TCP 端口 110 进行通信。
    • 验证身份:建立连接后,邮件客户端发送一个 USER 命令,提供用户的邮箱用户名。然后发送一个 PASS 命令,提供用户的密码,用于身份验证。
    • 邮件列表获取:经过身份验证后,邮件客户端发送 LIST 命令,请求获取邮件列表。邮件服务器会返回所有可用邮件的编号和大小。
    • 邮件下载:邮件客户端可以选择下载整个邮件或特定邮件。通过发送 RETR 命令,指定要下载的邮件的编号,邮件服务器将相应的邮件内容返回给客户端。
    • 邮件删除:如果用户希望从服务器上删除已下载的邮件,可以发送 DELE 命令,指定要删除的邮件的编号。邮件服务器会在会话结束后将这些被标记为删除的邮件从服务器上删除。
    • 断开连接:当用户完成邮件下载和删除操作后,可以发送 QUIT 命令来结束 POP3 会话,并关闭与服务器的连接。

IMAP协议介绍

  • 什么是 IMAP 协议

    IMAP(Internet Message Access Protocol)属于 TCP/IP 协议族,是一种用于接收和管理电子邮件的协议,默认端口号为143。它在电子邮件的管理方面提供了更多的功能,比如同步邮件夹结构、搜索邮件、标记状态保持等。它适用于那些需要在多个设备上访问和管理邮件的用户。

    注意:IMAP 不能用于发送邮件,主要用于接收邮件,此外还提供浏览和管理文件夹、浏览和管理文件夹、删除和移动邮件、搜索和过滤邮件等功能

  • IMAP 协议一般的工作流程

    • 建立连接:客户端应用程序(例如邮件客户端)与邮件服务器之间建立起IMAP连接。通常,客户端会通过指定邮件服务器的主机名和端口号来连接服务器。
    • 身份验证:客户端发送身份验证请求以验证用户身份。这涉及到提供用户名和密码或其他凭据。如果验证成功,客户端将被授权访问该用户在邮件服务器上的邮箱。
    • 邮箱选择:客户端选择要操作的邮箱(也称为文件夹、标签)。可以使用IMAP命令来列出可用邮箱并选择其中一个。
    • 邮件检索:客户端向服务器发送请求以获取特定邮箱中的邮件列表。可以使用IMAP命令来检索邮件的相关信息,如邮件标题、发件人、日期等。
    • 邮件操作:客户端可以执行各种邮件操作,如阅读邮件、删除邮件、标记已读/未读状态、移动邮件到其他文件夹等。所有这些操作都是通过向邮件服务器发送相应的IMAP命令来完成的。
    • 同步更新:当客户端对邮件执行操作时,服务器会相应地更新邮件的状态和属性。例如,如果客户端删除了一封邮件,服务器将从邮箱中删除该邮件,并同步该更改到其他设备。
    • 断开连接:当会话结束时,客户端可以发送断开连接请求以终止IMAP连接。服务器将关闭连接,客户端不再与服务器通信。

IMAP 与 POP3 的比较

  • IMAP 与 POP3 的比较

    IMAP 和 POP3 两个协议都是主要用于接收邮件的,但是两者也存在一些不同之处,不同的地方如下所诉:

    • 邮件保留方式不同

      • IMAP: 邮件保留在邮件服务器上,客户端通过与服务器进行交互来访问和管理邮件。客户端可以在多个设备上同时查看和管理邮件,因为邮件仍然存储在服务器上。

      • POP3: 邮件通常会从邮件服务器下载到客户端设备上,并从服务器上删除。客户端设备上的邮件成为唯一的副本,无法在多个设备上同步查看和管理。

    • 邮件同步方式不同

      • IMAP: IMAP支持双向同步,即当在一个设备上对邮件执行操作(如删除、移动)时,服务器和其他设备上的邮件状态也会相应地进行更新。

      • POP3: POP3是单向下载协议,只负责将邮件从服务器下载到客户端设备。客户端上的操作不会反映在服务器或其他设备上。

    • 邮件存储不同

      • IMAP: 邮件保留在邮件服务器上,并在文件夹结构中进行组织。客户端可以创建、删除和重命名文件夹,以便更好地组织和管理邮件。

      • POP3: 邮件通常存储在客户端设备上,没有文件夹结构来组织邮件。

    • 邮件下载方式

      • IMAP: 客户端可以选择仅下载邮件的部分内容,如邮件的标题和摘要。只有当需要查看完整邮件内容时,才会下载邮件的正文。

      • POP3: 客户端通常会将整个邮件下载到设备上,包括标题、正文和附件。

    综上所述,IMAP 适用于需要在多个设备上同步查看和管理邮件的场景,而 POP3 更适合那些只在单个设备上下载并处理邮件的场景

端口号介绍

默认的25端口号是用于非加密的 SMTP(Simple Mail Transfer Protocol)连接。它是传统的邮件发送协议,但在现代网络环境中,使用25端口发送邮件可能会受到一些限制或阻止。

许多网络服务提供商和互联网服务提供商(ISP)会在流量控制、垃圾邮件过滤等方面对SMTP流量进行限制。为了减少垃圾邮件和网络滥用,一些ISP可能会阻止直接通过25端口向外部服务器发送邮件。这种限制是为了防止恶意发送者滥用未经身份验证的SMTP连接。

为了解决这些问题,RFC 2476引入了另外一个SMTP端口,即端口587。该端口被定义为SMTP的"message submission"服务,用于客户端向服务器提交邮件。相对于端口25,端口587通常具有以下优势:

  1. 防止ISP封锁:一些ISP可能会封锁传出的SMTP流量,特别是目标地址是非ISP提供的邮件服务器时。通过使用端口587,可以避免被ISP封锁。
  2. 提供加密通信:端口587通常支持使用TLS(Transport Layer Security)或SSL(Secure Sockets Layer)加密协议进行安全的邮件传输。这使得邮件在传输过程中更加安全,并且可以保护用户的隐私和敏感信息。
  3. 需要身份验证:与端口25不同,端口587通常要求客户端进行身份验证,以确保发送邮件的合法性。这有助于减少垃圾邮件和滥用邮件的发送。

综上所述,端口587成为了推荐的邮件客户端向服务器提交邮件的端口,特别是在需要加密通信和身份验证的情况下。然而,并非所有邮件服务器都支持端口587,因此在使用时需要根据实际情况进行配置。如果你的邮件服务器要求使用端口25,则应相应地更改配置以适应该端口。

此外还有 465 端口,它和 587 端口的区别:

  • 端口号465:默认使用 SSL 加密连接的 SMTP(Simple Mail Transfer Protocol)端口。常用于发送方面向服务器的安全通信。通过该端口发送的邮件使用 SSL/TLS 协议进行加密,确保邮件传输的安全性。SSL(Secure Sockets Layer)是一个早期的加密协议,现已被更安全的协议 TLS(Transport Layer Security)所取代。使用465端口需要建立起 SSL 连接后再进行邮件传输。

  • 端口号587:默认使用 STARTTLS 加密连接的 SMTP 端口。STARTTLS 是一种在普通的非加密 SMTP 连接上启动加密的方法。它首先与服务器建立普通的非加密连接,然后通过 STARTTLS 命令将连接升级为加密连接。这意味着初始连接是未加密的,但随后会使用 TLS 或 SSL 加密进行邮件传输。

一般来说,推荐使用端口号587并使用 STARTTLS 加密连接,因为它提供了更好的兼容性,并且是目前更常见的加密方式。而端口号465则是较早的使用 SSL 加密连接的方式,在某些情况下可能会受到防火墙或安全设置的限制。

总结

  • 邮箱服务中的三大协议

    • SMTP(Simple Mail Transfer Protocol):

      • 作用:SMTP协议用于发送电子邮件。

      • 工作原理:使用SMTP协议,邮件客户端将邮件通过指定的SMTP服务器发送给目标邮件服务器,然后目标邮件服务器将邮件传递到收件人的邮箱。SMTP协议负责邮件的传输过程。

    • POP3(Post Office Protocol version 3):

      • 作用:POP3协议用于接收电子邮件。

      • 工作原理:使用POP3协议,邮件客户端从邮件服务器上下载邮件,并将其存储在客户端设备上。与IMAP不同,POP3通常会从服务器上删除邮件,因此客户端设备上的邮件成为唯一的副本。

    • IMAP(Internet Message Access Protocol):

      • 作用:IMAP协议用于接收管理电子邮件。

      • 工作原理:使用IMAP协议,邮件客户端可以连接到邮件服务器,浏览、搜索和管理服务器上存储的邮件。IMAP允许用户在多个设备上同步访问邮件,并保留邮件在服务器上的副本。

总结:SMTP用于发送邮件,IMAP用于在多个设备上同步接收和管理邮件,而POP3用于单个设备上下载并接收邮件。这三种协议共同构成了电子邮件服务的基础,并提供了完整的邮件收发功能。

  • 邮箱服务中的三大端口

    • 25端口号,是早期邮件服务中默认开放的端口号,但是由于它并没有对请求进行加密,所以存在安全风险

    • 587端口号,则可以通过 STARTTLS 命令在普通的非加密连接上启动加密

    • 465需要通过 SSL 连接进行邮件传输

总结:端口兼容性由高到低是 25、587、465,端口安全性由低大高是 25、587、465

参考文章

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识汲取者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值