当前位置: 首页 > news >正文

Wireshark抓取SMTP协议报文

文章目录

  • 1. 实验:网络仿真软件使用及网络分析
  • 2. SMTP协议
    • 2.1 SMTP协议简介
    • 2.2 SMTP协议的核心功能
    • 2.3 SMTP的相关命令和作用
  • 3. Wireshark抓取报文
    • 3.1 抓取SMTP协议报文流程
      • 3.1.1 Email邮件服务器背景
      • 3.1.2 具体实现流程
    • 3.2 过滤SMTP协议相关报文
  • 4. 协议时序图
    • 4.1 Wireshark捕获到的报文有编号,如下图:
    • 4.2 协议工作原理的时序图
  • 5. 分析协议工作原理
    • 5.1 SMTP通信流程
      • 5.1.1 建立连接
      • 5.1.2 身份验证
      • 5.1.3 发送发件人和收件人信息
      • 5.1.4 发送邮件内容
      • 5.1.5 退出连接
  • 6. 遇到的问题及解决方法
    • 6.1 使用邮件客户端Foxmail发送一封电子邮件后,无法捕获SMTP协议
    • 6.2 QQ邮箱账号在登入Foxmail后,在发送邮件阶段,由于取消SSL加密的原因,其处于安全性的保护,会取消发送操作

1. 实验:网络仿真软件使用及网络分析

2. SMTP协议

2.1 SMTP协议简介

​ SMTP协议的全称是Simple Mail Transfer Protocol(简单邮件传输协议),它是互联网上用于发送电子邮件的主要通信协议之一。SMTP协议通常与POP3或IMAP协议一起使用,以实现电子邮件的发送和接收.它的底层原理主要是通过TCP建立可靠的连接,使用命令和响应模式来传输邮件。


2.2 SMTP协议的核心功能

  • 发送邮件:从邮件客户端(如Outlook、Thunderbird)发送邮件到邮件服务器。
  • 邮件中继:在邮件服务器之间传递邮件(比如从发送方的服务器传送到接收方的服务器)。

2.3 SMTP的相关命令和作用

命令作用
HELO/EHLO发送方向服务器发送问候命令,以建立SMTP连接
MAIL FROM指定发件人地址
RCPT TO指定收件人地址
DATA指示邮件正文的开始
QUIT关闭与服务器的SMTP连接

3. Wireshark抓取报文

3.1 抓取SMTP协议报文流程

3.1.1 Email邮件服务器背景

​ 当前主流的Email服务都提供了加密,可通过搭建SMTP邮件服务器,在客户端通过Foxmail等邮件代理进行通信。

PS: Foxmail的官网链接:Foxmail


3.1.2 具体实现流程

(1)在Foxmail里登录网易邮箱,登录邮箱后在账号处右键选择设置进入系统设置页面,点击服务器,关闭两个SSL。

在这里插入图片描述

图 3-1 关闭SSL

PS:测试过QQ邮箱,当SSL关闭时会被强制登出,但是SSL必须关掉,否则无法抓取报文,所以选择网易邮箱


(2)打开Wireshark抓包软件,开启Wireshark的抓取功能,在Foxmail里面完成邮件书写并成功发送,切换到Wireshark便可以看到抓取的报文信息。

3.2 过滤SMTP协议相关报文

在Wireshark的过滤器中输入"smtp",可以过滤出与SMTP协议相关的报文信息

在这里插入图片描述

图 3-3 过滤后SMTP协议相关的报文

4. 协议时序图

4.1 Wireshark捕获到的报文有编号,如下图:

在这里插入图片描述

图 3-4 过滤后SMTP协议相关的报文编号

4.2 协议工作原理的时序图

在这里插入图片描述
在这里插入图片描述

图 3-5 协议工作原理的时序图

5. 分析协议工作原理

5.1 SMTP通信流程

5.1.1 建立连接

​ 客户端向服务器发起TCP连接请求,服务器接受连接并返回响应。具体来说,客户端使用TCP连接到SMTP服务器的25号端口。在连接成功后,客户端向服务器发送HELO命令,以表示自己的身份和意图。

5.1.2 身份验证

​ 如果需要身份验证,客户端会发送身份验证命令给服务器,服务器进行验证并返回相应的响应。

5.1.3 发送发件人和收件人信息

​ 客户端使用MAIL FROM命令指定发件人的电子邮件地址。如果发件人地址无效,则服务器会返回错误码并中止传输。客户端使用RCPT TO命令指定一个或多个收件人的电子邮件地址。如果收件人地址无效,则服务器会返回错误码并中止传输。简单而言就是:客户端发送"MAIL FROM"命令指定发件人,服务器进行响应。然后客户端发送"RCPT TO"命令指定收件人,服务器进行响应。

5.1.4 发送邮件内容

​ 客户端使用DATA命令指定邮件文本内容,以及包含的附件等信息。数据通常以点号(.)结束。服务器接收到邮件内容后会进行相应的处理,将邮件传递给下一个服务器,直到最终到达目标服务器。

5.1.5 退出连接

​ 当所有邮件内容都已发送后,客户端使用QUIT命令结束SMTP会话并断开连接。即客户端通过发送"QUIT"命令来结束邮件传输,服务器进行响应,并断开TCP连接。


​ PS: 邮件传输仍使用SMTP(Simple Mail Transfer Protocol)(端口:25)协议,SMTP协议是整个邮件传输体系中最基础的框架协议。1982年,协议协议首次作为互联网标准被写进RFC文档,此后经过多次更新,最近的依次比较大的更新在2008年,更新标准为RFC5321.STMP是一种比较老的协议了,安全性差,在邮件传输过程中,容易被第三方所窃取。STMP缺少身份验证机制,攻击者可以很容易在传输链路上获取明文的邮件内容。


6. 遇到的问题及解决方法

6.1 使用邮件客户端Foxmail发送一封电子邮件后,无法捕获SMTP协议

​ **解决方法:**在Foxmail系统设置页面中,点击“服务器”来查看具体设置,取消勾选以关闭SSL加密。

6.2 QQ邮箱账号在登入Foxmail后,在发送邮件阶段,由于取消SSL加密的原因,其处于安全性的保护,会取消发送操作

​ **解决方法:**切换成网易邮箱,并设置开启SMTP相关功能,获得登入所需的识别码

相关文章:

Wireshark抓取SMTP协议报文

文章目录 1. 实验:网络仿真软件使用及网络分析2. SMTP协议2.1 SMTP协议简介2.2 SMTP协议的核心功能2.3 SMTP的相关命令和作用 3. Wireshark抓取报文3.1 抓取SMTP协议报文流程3.1.1 Email邮件服务器背景3.1.2 具体实现流程 3.2 过滤SMTP协议相关报文 4. 协议时序图4.…...

PS学习笔记(一)

课程地址:【B站第一!】央美大佬198小时讲完的PS教程,全程干货无废话!学完秒变大神!还学不会,我不教设计了!!_哔哩哔哩_bilibili 第一章:基础知识 1.PS认识 一、PS应用领…...

部署.NET6.0 Web API项目到Docker

文章目录 介绍创建.NET WebAPI项目项目打包项目部署文件准备部署命令可能的问题与解决 介绍 使用VS2022创建一个.NET6的Web API项目,将其打包,并部署到Linux服务器上的Docker中。 Linux和Docker环境已经备好,本文不再赘述,主要记…...

前端函数防抖(Debounce)完整讲解 - 从原理、应用到完整实现

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...

React Redux 与 Zustand

Redux 一、Redux 核心概念 1. 为什么需要 Redux? 解决的问题:在大型 React 应用中,跨组件共享状态、管理复杂数据流。 优势: 单一数据源:全局状态集中存储在 Store 中。 可预测性:通过严格的规则&#…...

Webug4.0靶场通关笔记07- 第9关反射XSS和第10关存储XSS

目录 第09关 反射型XSS 1.打开靶场 2.源码分析 3.渗透实战 第10关 存储型XSS 1.打开靶场 2.源码分析 3.渗透实战 本系列为通过《Webug4.0靶场通关笔记》的渗透集合,本文为反射型和存储型XSS漏洞关卡的渗透部分,通过对XSS关卡源码的代码审计找到漏…...

react学习笔记4——React UI组件库与redux

流行的开源React UI组件库 material-ui(国外) 官网: http://www.material-ui.com/#/github: GitHub - mui/material-ui: Material UI: Comprehensive React component library that implements Googles Material Design. Free forever. ant-design(国内蚂蚁金服) 官网: Ant…...

Java学习手册:Spring 事务管理

一、事务管理的概念 事务是一组操作的集合,这些操作要么全部成功,要么全部失败。事务管理的目的是保证数据的一致性和完整性。在数据库操作中,事务管理尤为重要,例如银行转账、订单支付等场景都需要事务管理来确保数据的正确性。…...

SpringBoot研究生双选系统开发实现

概述 SpringBoot研究生双选信息发布系统​,该系统实现了研究生与导师双向选择的全流程管理,​​采用主流SpringBoot框架开发,是学习企业级教育管理系统开发的优质资源。适合作为计算机专业设计项目或高校信息化建设参考,完整实现…...

springboot中异步接口实现所有方式_20250501

几种异步接口实现demo package org.dromara.controller.app;// 导入必要的依赖库import cn.dev33.satoken.annotation.SaIgnore; import lombok.extern.slf4j.Slf4j; import org.springframework.core.io.Resource; import org.springframework.core.io.UrlResource; import o…...

【Linux网络】I/O多路转接技术 - epoll

📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...

机器学习经典算法:用决策树原理优化新能源汽车续航能力

🔥 “用决策树重构新能源车能量大脑!算法推导代码实战全解,续航暴增15%” 决策树算法就像我们生活中做决策的 “流程指南”,通过层层判断得出最终结论。比如你去超市买水果,站在琳琅满目的货架前,就不自觉地…...

深入探讨宾馆一次性牙刷价格,市场价格区间差异大

在我们日常出行、住宿的时候,宾馆的一次性牙刷是常见的、标配的物品。许多人或许都会感到好奇,这些一次性牙刷到底值多少钱。下面就来深入探讨一下宾馆一次性牙刷价格方面的问题。 市场价格区间 宾馆一次性牙刷价格差距大,便宜的一支可能只…...

深入解析 .NET Kestrel:高性能 Web 服务器的架构与最佳实践

Kestrel 是 .NET 中用于处理 HTTP 请求的高性能 Web 服务器。作为 ASP.NET Core 的默认服务器,Kestrel 被设计为在高并发、高吞吐量的环境下表现优异,并且能够支持多种协议和跨平台操作。本文将深入探讨 Kestrel 的架构设计、工作原理、配置方式、性能优…...

ZYNQ 纯PL端逻辑资源程序固化流程

ZYNQ 纯PL端逻辑资源程序固化 ZYNQ的程序固化流程比传统的FPGA固化流程复杂很多,Vivado生成的bit文件无法直接固化在ZYNQ芯片中。因为ZYNQ 非易失性存储器的引脚(如 SD 卡、QSPI Flash)是 ZYNQ PS 部分的专用引脚。这些非易失性存储器由 PS …...

【树莓派Pico FreeRTOS】-FreeRTOS-SMP移植

FreeRTOS-SMP移植 文章目录 FreeRTOS-SMP移植1、Raspberry Pi Pico SDK准备2、下载最新FreeRTOS-Kernel源码3、Raspberry Pi Pico的开发环境搭建4、编译配置5、FreeRTOSConfig.h文件设置6、演示代码RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 …...

数字智慧方案5961丨智慧能源与运维云平台解决方案(52页PPT)(文末有下载方式)

详细资料请看本解读文章的最后内容。 资料解读:智慧能源与运维云平台解决方案 在当今数字化时代,能源管理与设备运维的智能化、高效化成为企业发展的关键。智慧能源与运维云平台解决方案应运而生,为企业提供了全面且先进的能源管理和运维手段…...

2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析

完整内容请看文章最下面的推广群 数据整理与分析 表1:有源配电网62节点系统负荷参数 内容:列出了62个节点的有功负荷(单位:kW)。 特点: 负荷范围:24 kW(节点19)到420 …...

腾讯云BI VS quickbi 企业选型(从企业实际功能使用和费用对比)

腾讯云BI VS quickbi 选型 一、总结 前段时间领导让调研腾讯云BI,用来做BI选型,现根据公司实际使用功能做如下总结。 建议继续使用quickbi,不选择腾讯云BI 原因: 腾讯云BI专业版,官方价格最低101996元。并且只能选…...

WebDeveloper 流量分析、sudo提权,靶场通关WP

一、信息收集 1、主机探测 arp-scan -l netdiscover -i eth0 -r 192.168.33.0/24 nmap -sP 192.168.66.0/24 2、端口扫描 nmap -sS -sV 192.168.66.141 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0) 80/tcp op…...

编写教育网站后端页面笔记

callbacktitle.html 对应表: 对应的功能: 控制器层数据: 页面没有写内容 chapter.html 对应表: questionbank ,intofloortime,questionBank,title,didtitles,option,answer,analyse 对应的功能:问题反馈页面 控制器层数据(控制器类): ChapterQuestionbankTitle c…...

C++漫溯键值的长河:map set

文章目录 1.关联式容器2.set2.1 find2.2 lower_bound、upper_bound 3.multiset3.1 count3.2 equal_range 4.map4.1 insert4.2 operate->4.3 operate[ ]4.4 map的应用实践:随机链表的复制 5.multimap希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动…...

西门子数字化研发设计制造一体化规划案例P87(87页PPT)(文末有下载方式)

资料解读:《西门子数字化研发设计制造一体化规划案例》 详细资料请看本解读文章的最后内容。 该文档围绕西门子为企业打造的智能化制造研发工艺生产一体化平台规划方案展开,全面阐述了从业务现状分析到项目实施及案例分享的整个过程。 业务现状与需求分析…...

Rust多线程性能优化:打破Arc+锁的瓶颈,效率提升10倍

一、引言 在 Rust 开发中,多线程编程是提升程序性能的重要手段。Arc(原子引用计数)和锁的组合是实现多线程数据共享的常见方式。然而,很多程序员在使用 Arc 和锁时会遇到性能瓶颈,导致程序运行效率低下。本文将深入剖…...

基于python的人工智能应用简述

基于Python的人工智能应用简述 Python已成为人工智能(AI)开发的首选语言,凭借其简洁性、丰富的库生态系统和强大的社区支持,广泛应用于各类AI应用场景。以下是Python在人工智能领域的主要应用领域和技术实现。 1. 机器学习(Machine Learning) Python通过Scikit-learn、Ten…...

《Android 应用开发基础教程》——第十章:使用 Gson 实现网络 JSON 数据解析与对象映射

目录 第十章:使用 Gson 实现网络 JSON 数据解析与对象映射 🔹 10.1 什么是 Gson? 🔸 10.2 添加依赖 🔸 10.3 基础使用 ✦ 示例 JSON 字符串: ✦ 定义对应的 Java 类: ✦ JSON ➜ 对象&am…...

【Android】四大组件之BroadcastReceiver

目录 一、什么是BroadcastReceiver 二、创建和使用BroadcastReceiver 三、跨应用广播接收权限 四、广播方式 五、广播类型与特性 六、BroadcasReceiver注册方式 七、BroadcasReceiver工作流程 你可以把广播接收器想象成一个“收音机”。它的作用是监听系统或应用发出的“…...

[UVM]寄存器模型的镜像值和期望值定义是什么?他们会保持一致吗?

寄存器模型的镜像值和期望值定义是什么?他们会保持一致吗? 摘要:在 UVM (Universal Verification Methodology) 寄存器模型中,镜像值 (mirrored value) 和期望值 (desired value) 是两个非常重要的概念,用于管理寄存器…...

OpenGL-ES 学习(12) ---- VBO EBO VAO

目录 VBO 定义VBO 创建统一VertexData使用 VBO 绘制VAO VBO 定义 VBO(Vertex Buffer Object) 是指顶点缓冲区对象,而 EBO(Element Buffer Object)是指图元索引缓冲区对象,VBO 和 EBO实际上是同一类 buffer 按照用途的不同称呼 OpenGL-ES2.0 编程中&…...

【Redis分布式】主从复制

🔥个人主页: 中草药 🔥专栏:【中间件】企业级中间件剖析 一、主从复制 在分布式系统之中为了解决单点问题(1、可用性问题,该机器挂掉服务会停止2、性能支持的并发量是有限的)通常会把数据复制多…...

Node.js心得笔记

npm init 可用npm 来调试node项目 浏览器中的顶级对象时window <ref *1> Object [global] { global: [Circular *1], clearImmediate: [Function: clearImmediate], setImmediate: [Function: setImmediate] { [Symbol(nodejs.util.promisify.custom)]: [Getter] }, cl…...

多智能体空域协同中的伦理博弈与系统调停

在多智能体系统&#xff08;MAS&#xff09;广泛应用于低空飞行调度、应急响应与城市管理的背景下&#xff0c;AI之间的“协同”不仅是算法效率问题&#xff0c;更是伦理角色之间的权责动态博弈。尤其在高频互动、任务冲突、资源抢占等复杂场景中&#xff0c;智能体不再是“工具…...

面试中系统化地解答系统设计题:通用方法论

目录 一、明确需求(Clarify Requirements) (一)理解业务背景 (二)功能性需求(Functional Requirements) 1. 分析目标 2. 功能需求分类 A. 用户交互类功能 B. 数据处理类功能 C. 管理与运维类功能 D. 外部系统交互类功能 示例场景详解 3. 捕捉隐藏需求的技巧…...

kotlin中 热流 vs 冷流 的本质区别

&#x1f525; 冷流&#xff08;Cold Flow&#xff09; vs 热流&#xff08;Hot Flow&#xff09;区别 特性冷流&#xff08;Cold Flow&#xff09;热流&#xff08;Hot Flow&#xff09;数据生产时机每次 collect 才开始执行启动时就开始生产、始终运行生命周期与 collect 者…...

机器视觉开发-打开摄像头

以下是使用Python和OpenCV打开摄像头的最简单实现&#xff1a; import cv2# 打开默认摄像头&#xff08;通常是0&#xff09; cap cv2.VideoCapture(0)# 检查摄像头是否成功打开 if not cap.isOpened():print("无法打开摄像头")exit()print("摄像头已打开 - 按…...

Rerank详解

疑惑一 我对rag的流程理解是。后端首先建立embedding后的向量数据库&#xff0c;用户提问使用相同的embedding模型进行向量化&#xff0c;使用阈值控制相似度找出前topk个数据。然后rerank&#xff0c;将rerank的结果打包成prompt返回给大模型进行解答。我对于rerank的过程不是…...

深度探索DeepSeek:从架构设计到性能优化的实战指南

深度解码DeepSeek&#xff1a;从架构设计到工业级部署的全链路优化实践 引言&#xff1a;大模型时代的工程挑战 在人工智能技术进入工业化落地阶段的今天&#xff0c;大模型训练与推理的工程化能力已成为衡量企业技术实力的重要标尺。DeepSeek作为当前业界领先的超大规模语言…...

d202551

目录 一、175. 组合两个表 - 力扣&#xff08;LeetCode&#xff09; 二、511. 游戏玩法分析 I - 力扣&#xff08;LeetCode&#xff09; 三、1204. 最后一个能进入巴士的人 - 力扣&#xff08;LeetCode&#xff09; 一、175. 组合两个表 - 力扣&#xff08;LeetCode&#xf…...

(C题|社交媒体平台用户分析问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…...

计网_PPP协议

2024.10.15&#xff1a;beokayy计算机网络学习笔记 PPP协议 PPP协议的特点PPP协议应满足的需求&#xff08;了解&#xff09;PPP协议的组成&#xff08;PPP协议有三个组成部分&#xff09; PPP协议的帧格式PPP协议的工作状态 ISP指的是运营商&#xff0c;比如中国联通、中国电信…...

Mem0.ai研究团队开发的全新记忆架构系统“Mem0”正式发布

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

二叉树删除结点详细代码

#include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h>typedef int data_t; typedef struct _node {data_t data;struct _node* left;struct _node* right; }node_t;int bst_create(node_t**, data_t);//函数声明BST创建 int bst…...

PyTorch线性代数操作详解:点积、矩阵乘法、范数与轴求和

本文通过代码示例详细讲解PyTorch中常用的线性代数操作&#xff0c;包括点积、矩阵乘法、范数计算以及按轴求和等操作&#xff0c;帮助读者掌握张量运算的核心方法。 1. 点积运算 点积&#xff08;Dot Product&#xff09;是两个向量对应元素相乘后求和的结果。 实现代码&…...

Java SE(6)——类和对象

1.初始面向对象 1.1 什么是面向对象 Java是一门纯面向对象的编程语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交换来完成一件事情 1.2 面向过程…...

Kubernetes(k8s)的API Server 组件原理与结合生产实战教程

一、API Server 架构深度解析 1. 核心架构设计 二、生产环境安全加固实战 1. 认证&#xff08;Authentication&#xff09; 2. 授权&#xff08;Authorization&#xff09; 3. 准入控制&#xff08;Admission Control&#xff09; 三、性能优化与调参 1. 关键启动参数 四…...

Java面试高频问题(31-33)

三十一、服务网格&#xff1a;东西向流量治理与故障注入 服务网格架构分层 mermaid graph BT subgraph Control Plane APilot --> BEnvoy Sidecar CMixer --> B DCitadel --> B end subgraph Data Plane B --> E服务A B --> F服务B B --> G服务C end 核心能…...

VSCode开发调试Python入门实践(Windows10)

我的Windows10上的python环境是免安装直接解压的Python3.8.x老版本&#xff0c;可参见《Windows下Python3.8环境快速安装部署。 1. 安装VSCode 在Windows 10系统上安装Visual Studio Code&#xff08;VS Code&#xff09;是一个简单的过程&#xff0c;以下是详细的安装方法与…...

C++——入门基础(2)

文章目录 一、前言二、C入门2.1 缺省参数2.2 函数重载2.2.1 参数类型不同2.2.1.1 整体参数类型不同2.2.1.2 参数类型顺序不同 2.2.2 参数个数不同2.2.3 避坑注意2.2.3.1无参与有参2.2.3.2 返回值不同 2.3 引用2.3.1 引用的概念2.3.2引用的结构2.3.3 引用的特点2.3.4引用的作用2…...

【MySQL】复合查询与内外连接

目录 一、复合查询 1、基本查询回顾&#xff1a; 2、多表查询&#xff1a; 3、自连接&#xff1a; 4、子查询&#xff1a; 单列子查询 多行子查询&#xff1a; 多列子查询&#xff1a; 在from语句中使用子查询&#xff1a; 5、合并查询&#xff1a; union&#xff1…...

第3篇:请求参数处理与数据校验

在 Web 开发中&#xff0c;请求参数处理与数据校验是保障系统稳定性的第一道防线。本文将深入探讨 Egg.js 框架中参数处理的完整解决方案&#xff0c;涵盖常规参数获取、高效校验方案、文件流处理等核心功能&#xff0c;并分享企业级项目中的最佳实践。 一、多场景参数获取策略…...