邮件协议讲解(SMTP、POP3、IMAP)

news2025/5/18 6:04:20

邮件收发基本概念

常见邮件协议

发邮件:SMTP(加密版本SMTPS)

收邮件:IMAP(加密版本IMAPS)、POP3(加密版本POP3S)

邮件协议端口号

SMTP:   TCP 25

IMAP:    TCP 143

POP3:   TCP 110

SMTPS: TCP 465

IMAPS:  TCP 993

POP3S: TCP 995

IMAP和POP3收邮件的区别

IMAP功能要比POP3的功能更加丰富

IMAP用户在读取邮件时,直接对服务器上的邮件进行操作,不需要把所有邮件下载到本地在进行各项操作(需要与服务器定时同步)

POP3客户端软件会将所有未阅读的邮件下载到计算机,并且在邮件服务器上会删除该邮件

邮件收发过程(用户通过邮件客户端进行邮件的收发)

1、用户通过邮件客户端软件将邮件通过SMTP协议发送到发送方的SMTP服务器

2、发送方的SMTP服务器收到用户发来的邮件后,将其存放在邮件缓存列表中(等待时间取决于邮件服务器的性能和要传输的邮件数量),然后发送给接收方的SMTP服务器

3、接收方SMTP服务器收到该邮件后,把邮件放入收件人的用户邮箱中,等待收件人读取

4、收件人通过邮件客户端使用POP3/IMAP协议接收邮件(邮件客户端通过POP3/IMAP协议去通知POP3/IMAP服务器,有POP3/IMAP服务器去用户邮箱中将邮件读取出来,然后发给邮件客户端软件)

目前我们也会通过浏览器来进行邮件的收发,具体过程如下

HTTP/HTTPS协议如何传输邮件?

HTTP/HTTPS本身不适用于发送和接收邮件,但可以通过使用HTTP访问邮件网站,通过API接口来发送和接收邮件


SMTP协议报文

报文类型

客户端请求

HELLO/ELHO        作用都是与服务器确认,通知其客户端使用的机器名称(区别就是ELHO带身份验证,效果更加安全)  服务器对HELLO会直接返回250,对ELHO会返回身份验证

AUTH                   客户端使用AUTH与服务器进行登录验证

MAIL FROM          发件人信息(填写与认证信息不同 往往会被定义为垃圾或恶意邮件)

RCPT TO               邮件收信人地址

SUBJECT               邮件基本信息(邮件标题—不填写往往容易被定为垃圾邮件)

DATA                    告知服务器要传输邮件的正文内容信息

QUIT                    断开连接

SMTP应答返回码

334                请求认证输入

250                响应客户端发来的请求

235                认证通过

221                服务关闭传输通道

220                服务就绪

354                表示开始传送邮件的正文内容信息(往往与data指令结合—当收到SMTP报文携带 .标志时表示结束正文内容信息的传送)

500                指令错误

550                命令无法执行

IMF协议

IMF是一种用于描述电子邮件消息格式的标准,它描述了邮件的各个组成部分(如发件人、收件人、主题、正文等),通常以ASCII编码的文本形式表示(即:IMF定义了文本信息的标准;后面通过MIME多用途互联网邮件扩展类型定义了非ASCII编码文件的形式)

IMF协议和DATA报文之间的关系

SMTP用来发送邮件,IMF定义了邮件的信息格式,DATA携带邮件真正的正文内容

在SMTP协议中,DATA报文用于发送邮件的实际内容,并且DATA报文中携带的二进制数据必须遵循IMF消息的格式要求,以便SMTP服务器能够正确解析和存储邮件

当SMTP客户端与SMTP服务器建立连接后,客户端会发送DATA报文,在DATA发送结束后会发送IMF消息,使得对端能够对DATA报文进行解析

用户通过客户端将邮件发送到SMTP服务器的过程以及相关报文

建立TCP连接

协商认证方式(是否认证、通过什么认证)

进行身份认证                                                                                       

客户端进行邮件基本信息和邮件内容的发送


POP3协议报文

报文类型

客户端发送的命令

User       声明用户名

       Pass       声明密码

       Quit       终止会话(断开与服务器的连接)

       STAT      要求服务器提供信箱大小信息

       LIST        要求服务器返回一个信箱中特定邮件的大小信息(或者没有删除标记的所有邮件的大小信息)

       RETR      用编号取出相应的邮件消息

       TOP        提取前几行

       Dele       标记指定的邮件为删除邮件

       REST       标记为删除的邮件取消标记

       UIDL       取出邮件的唯一标识符

服务器响应

       +OK(针对客户端发送的命令携带不同的内容信息)

       -ERR

用户通过客户端读取邮件的过程以及相关报文

进行TCP连接

进行身份认证

获取邮件相应的信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1288855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

西门子SMART精彩触摸屏如何在进入某个画面时置位某个BOOL变量?

西门子SMART精彩触摸屏如何在进入某个画面时置位某个BOOL变量? 以下举例进行说明具体的操作: 如下图所示,新建一个项目后,在变量表中添加好自己需要的变量; 添加一个画面,这里以“画面_1”进行举例说明&…

在 Node-RED 中引入 ECharts 实现数据可视化

Node-RED 提供了强大的可视化工具,而通过引入 ECharts 图表库,您可以更直观地呈现和分析数据。在这篇博客中,我们将介绍两种在 Node-RED 中实现数据可视化的方法:一种是引入本地 ECharts 库,另一种是直接使用 CDN&…

美图发布自研视觉大模型4.0,主打AI设计与AI视频【无际Ai分享资讯】

12月5-6日,主题为“未来AI设计”的美图创造力大会在厦门举行。美图公司发布自研AI视觉大模型MiracleVision(奇想智能)4.0版本,主打AI设计与AI视频。 AI设计方面,新增了矢量图形、文字特效、智能分层、智能排版四大能力…

机器学习实验五:集成学习

系列文章目录 机器学习实验一:线性回归机器学习实验二:决策树模型机器学习实验三:支持向量机模型机器学习实验四:贝叶斯分类器机器学习实验五:集成学习机器学习实验六:聚类 文章目录 系列文章目录一、实验…

windows install git

refer: https://developers.weixin.qq.com/miniprogram/dev/devtools/wechatvcs.html https://blog.csdn.net/weixin_40228200/article/details/128451324 在使用小程序的时候,需要初始化项目,需要注册Git账号 1.在本地确认cmd没有安装Git,进入Git官网…

开放式耳机什么品牌好?南卡、韶音、cleer开放式耳机哪个好?

全球TWS耳机出货量从2016年的918万台增长至2023年第二季度的6816万台。开放式耳机的新赛道在2023年持续发酵,成为市场中的新关注点,各大品牌也在今年争先推出新款开放式耳机,韶音、南卡、Cleer的新产品都在上半年纷纷亮相,开放式耳…

阻碍“元宇宙”游戏行业发展的最大瓶颈是什么?

很显然,我们现在还没看到真正的“元宇宙”产品,在3-5年内也不太可能看到这样的产品。按照米哈游CEO蔡浩宇的说法,2030年希望建成一个“上亿人愿意生活在其中的虚拟世界”,那也是八年以后的事情了。 原因很简单:技术不成…

Java 输入输出流01

1. 什么是 IO Java 中 I/O 操作主要是指使用 Java 进行输入,输出操作. Java 所有的 I/O 机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java 的 I/O 流提供了读写数据的标准方法。任何 Java 中表示数据源的对象都会提供…

2024年终工作总结汇报,这样来写更科学

时光荏苒,2024年已经悄然而至,伴随而来的是一年一度的终年工作总结,以回首过去的一年的成果与不足。然而,怎样写一份既真实又有说服力的总结汇报成了摆在很多人面前的一道难题。 在为年终总结苦恼时,我突然想到了平时…

CompletableFuture异步执行

CompletableFuture异步执行 概念 Java 8引入了一个强大的类:CompletableFuture,它在java.util.concurrent包中。CompletableFuture是Future的增强版本,主要用于实现异步编程。 首先,我们要理解什么是Future。Future是Java5引入的一个接口,代表一个异步计算的结果。你可…

虹科干货 | 关于JSON数据库

来源:艾特保IT 虹科干货 | 关于JSON数据库 原文链接:https://mp.weixin.qq.com/s/NutCGWa32rOcEHrk3UDGcQ 欢迎关注虹科,为您提供最新资讯! 如何理解JSON数据库?作为NoSQL数据库的一种类型,JSON数据库有哪…

cocos creator [Window] Cannot read property ‘dump‘ of null

写脚本的时候,出现了如下的问题, [Window] Cannot read property dump of null 原因:在下图中,方式一是正常的,而方式二则会爆出此错误,所以需要初始化,给它赋值

人工智能|网络爬虫——用Python爬取电影数据并可视化分析

一、获取数据 1.技术工具 IDE编辑器:vscode 发送请求:requests 解析工具:xpath def Get_Detail(Details_Url):Detail_Url Base_Url Details_UrlOne_Detail requests.get(urlDetail_Url, headersHeaders)One_Detail_Html One_Detail.cont…

AI助力智慧农业,基于YOLOv6最新版本模型开发构建不同参数量级农田场景下庄稼作物、杂草智能检测识别系统

智慧农业随着数字化信息化浪潮的演变有了新的定义,在前面的系列博文中,我们从一些现实世界里面的所见所想所感进行了很多对应的实践,感兴趣的话可以自行移步阅读即可: 《自建数据集,基于YOLOv7开发构建农田场景下杂草…

java8 常用code

文章目录 前言一、lambda1. 排序1.1 按照对象属性排序:1.2 字符串List排序:1.3 数据库排序jpa 2. 聚合2.1 基本聚合(返回对象list)2.2 多字段组合聚合(直接返回对象list数量) 二、基础语法2.1 List2.1.1 数…

Linux之进程(二)

目录 一、进程优先级 1、基本概念 2、Linux中的优先级 1、PRI和NI 2、通过top命令更改进程NI值 3、四个特性 二、进程切换 一、进程优先级 1、基本概念 什么是优先级?优先级:进程获取cpu资源分配的先后顺序,就是指进程的优先权。优先…

Python 日志(略讲)

日志操作 日志输出: # 输出日志信息 logging.debug("调试级别日志") logging.info("信息级别日志") logging.warning("警告级别日志") logging.error("错误级别日志") logging.critical("严重级别日志")级别设置…

【Linux】awk 使用

awk 输出 // 打印所有列 $ awk {print $0} file // 打印第一列 $ awk {print $1} file // 打印第一和第三列 $ awk {print $1, $3} file // 打印第三列和第一列,注意先后顺序 $ cat file | awk {print $3, $1} …

echarts 柱状图 定时自动轮播(非提示框轮播)

看了很多文档都是实现提示框轮播的,而我要实现的功能是:柱状图有多条数据时,轮播展示其中几条,比如我有100条数据,不能全部展示,设置轮播5条或者10条,依次显示数据,并形成闭环。 重…

基于openvino的情绪识别与图画展现应用方案

1.前言 1.1情绪识别的重要性 ①提升人际交往体验 通过情绪识别,机器能够更准确地理解用户的需求以及意图从而为用户提供更加个性化的服务。 ②辅助心理健康诊断 情绪识别技术可以应用于心理健康领域,帮助心理医生更客观地评估患者的情绪状态&#xff…