[ 钓鱼实战系列-基础篇-6 ] 一篇文章让你了解邮件服务器机制(SMTP/POP/IMAP)-1
🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
网络钓鱼不仅是一种网络攻击技术同时也是一项最常见的社会工程技术,更是红队选手和网络犯罪分子的惯用伎俩。
本文我们探讨有邮件邮件服务器机制。
文章目录
- 🍬 博主介绍
- 1.6 邮件服务器机制-1
- 1.6.1 什么是邮件服务器?
- 1.6.2 相关协议介绍
- 1.6.2.1 SMTP
- 1.6.2.1 POP3
- 1.6.2.3 IMAP
- 1.6.3 邮件服务器的工作原理
- 1.6.3.1 SMTP服务器
- 1.6.3.2 POP3/IMAP服务器
- 1.6.3.3 邮件服务器工作流程
- 1.6.4 邮箱系统的组成部分
- 1.6.4.1 邮件用户代理(MUA)
- 1.6.4.2 邮件传输代理(MTA)
- 1.6.4.3 邮件投递代理(MDA)
- 1.6.4.4 邮件接收代理(MRA)
- 1.6.4.5 域名系统(DNS)
- 1.6.4.6 邮件列表数据库
- 1.6.4.7 邮件过滤和反垃圾邮件系统
- 相关资源
1.6 邮件服务器机制-1
1.6.1 什么是邮件服务器?
邮件服务器是一种计算机程序,用于处理和传输电子邮件,它负责接收、存储、发送和路由电子邮件。
邮件服务器也采用的是C/S工作模式,通过SMTP,POP,IMAP协议来是实现邮件的发送和接收的。
1.6.2 相关协议介绍
1.6.2.1 SMTP
SMTP 协议介绍:
SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。
SMTP认证:
为了增强安全性并防止垃圾邮件的传播,许多邮件服务器实施了SMTP认证。这意味着用户必须在提供了账户名和密码之后才可以登录SMTP服务器。这一措施有效地阻止了未经授权的用户使用SMTP服务器发送垃圾邮件,从而保护了用户的收件箱不受侵扰。
使用端口:
SMTP使用的端口是25,而经过加密的SMTP(SMTPS)使用的端口是465。通过这些安全措施,SMTP认证不仅提高了邮件传输的安全性,还有助于减少垃圾邮件的数量,为用户提供了更加清洁和安全的电子邮件体验。
1.6.2.1 POP3
POP3 协议介绍:
POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本。它是一种电子协议,用于规定个人计算机如何连接到互联网上的邮件服务器并下载电子邮件。作为因特网电子邮件的第一个离线协议标准,POP3允许电子邮件客户端从服务器上下载邮件。然而,需要注意的是,客户端上的操作(如移动邮件、标记已读等)不会反馈到服务器上。例如,即使您通过客户端收取了邮箱中的3封邮件并将其移动到其他文件夹,这些操作也不会在服务器上同步更新。
使用端口:
POP3使用的端口号是110,而经过加密的POP3(POP3S)则使用端口995。这种加密协议提供了更高的安全性,确保了用户在下载和处理电子邮件时的数据安全。
1.6.2.3 IMAP
IMAP 协议介绍:
IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议。它是与POP3类似的一种邮件访问标准协议。然而,IMAP的一个显著特点是,当您在电子邮件客户端收取邮件时,这些邮件仍然保留在服务器上。此外,客户端上的任何操作(如删除邮件、标记已读等)都会实时反馈到服务器上,确保服务器上的邮件状态与客户端保持一致。
IMAP 与 POP3 对比:
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上。
而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。
同时,IMAP像POP3那样提供了方便的邮件下载服务,让用户能进行离线阅读。IMAP提供的摘要浏览功能可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。
使用端口:
基于TCP/IP协议,IMAP使用的端口号是143,而经过加密的IMAP(IMAPS)则使用端口993。这种加密协议提供了更高的安全性,确保了用户在访问和管理电子邮件时的数据传输安全。
1.6.3 邮件服务器的工作原理
主要有两种类型的邮件服务器:SMTP服务器(用于发送邮件)和POP3/IMAP服务器(用于接收和管理邮件)。
1.6.3.1 SMTP服务器
1、当用户通过客户端软件发送电子邮件时,客户端软件会将邮件发送到SMTP服务器。
2、SMTP服务器接收到邮件后,会将邮件转发到目标收件人的SMTP服务器。
3、目标收件人的SMTP服务器接收到邮件后,会将邮件存储在收件人的邮箱中。
1.6.3.2 POP3/IMAP服务器
1、当用户通过客户端软件访问自己的邮箱时,客户端软件会与POP3/IMAP服务器建立连接。
2、POP3/IMAP服务器会将用户的邮件下载到客户端软件中,用户可以查看、删除或移动邮件。
3、当用户完成操作后,客户端软件会断开与POP3/IMAP服务器的连接。
1.6.3.3 邮件服务器工作流程

1.发送邮件:
当用户尝试发送邮件时,他们的邮件客户端会与MTA通信,将邮件内容提交给MTA。
2.路由邮件:
MTA会根据收件人的地址决定如何路由邮件。如果收件人位于同一域内,MTA会直接将邮件投递到目标邮箱。如果收件人位于不同的域,MTA会查询DNS以找到正确的邮件服务器IP地址。
3.SMTP会话:
MTA之间通过SMTP会话进行通信,使用一系列握手和命令来确保邮件的准确传递。
4.接收邮件:
当邮件到达目标邮件服务器时,该服务器的MTA会处理邮件并存储在用户的邮箱中。
5.访问邮件:
用户可以通过MUA连接到他们的邮箱,使用IMAP或POP3协议检索邮件。
1.6.4 邮箱系统的组成部分

1.6.4.1 邮件用户代理(MUA)
邮件用户代理,即邮件客户端,outlook、foxmail等客户端,在网页端进行访问的网页程序也即可以被称为MUA。
1.6.4.2 邮件传输代理(MTA)
处理邮件传输的软件,如Postfix或Sendmail。它负责接收来自其他服务器的邮件并将其传递给用户的邮箱。
1.6.4.3 邮件投递代理(MDA)
邮件投递代理,当MTA接收到邮件时MDA则负责将邮件保存到邮件服务器的指定位置,同时也进行垃圾邮件处理和防病毒处理等。
1.6.4.4 邮件接收代理(MRA)
邮件接收代理,MRA负责实现IMAP或POP3协议,与MUA进行交互,将邮件通过IMAP或POP3协议传输给客户端
1.6.4.5 域名系统(DNS)
DNS用于将域名解析为IP地址,以便邮件服务器能够找到目标收件人的SMTP服务器。
1.6.4.6 邮件列表数据库
邮件列表数据库用于存储订阅了某个邮件列表的用户信息。
1.6.4.7 邮件过滤和反垃圾邮件系统
邮件过滤和反垃圾邮件系统用于识别和阻止垃圾邮件,保护用户免受垃圾邮件的骚扰。
相关资源
[ 提升篇 ] 钓鱼实战系列
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-1(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-2(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-4 ] 一篇文章教会你用红队思维收集目标邮箱信息-3(附邮箱收集自动化脚本)
[ 钓鱼实战系列-基础篇-5 ] 一篇文章教会你用红队思维设计钓鱼模板(附常见的钓鱼邮件模板)
相关文章:
[ 钓鱼实战系列-基础篇-6 ] 一篇文章让你了解邮件服务器机制(SMTP/POP/IMAP)-1
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
wordpress伪静态规则
WordPress 伪静态规则是指将 WordPress 生成的动态 URL 转换为静态 URL 的规则,这样做可以提高网站的搜索引擎优化(SEO)效果,并且使得 URL 更加美观、易于记忆。伪静态规则通常需要在服务器的配置文件中设置,不同的服务器环境配置方法有所不同…...
缓存框架JetCache源码解析-缓存定时刷新
作为一个缓存框架,JetCache支持多级缓存,也就是本地缓存和远程缓存,但是不管是使用着两者中的哪一个或者两者都进行使用,缓存的实时性一直都是我们需要考虑的问题,通常我们为了尽可能地保证缓存的实时性,都…...
docker配置mysql8报错 ERROR 2002 (HY000)
通过docker启动的mysql,发现navicat无法连接,后来进入容器内部也是无法连接,产生以下错误 root9f3b90339a14:/var/run/mysqld# mysql -u root -p Enter password: ERROR 2002 (HY000): Cant connect to local MySQL server through socket …...
【Linux】为什么环境变量具有全局性?共享?写时拷贝优化?
环境变量表具有全局性的原因: 环境变量表之所以具有全局性的特征,主要是因为它们是在进程上下文中维护的,并且在大多数操作系统中,当一个进程创建另一个进程(即父进程创建子进程)时,子进程会继承…...
如何在Linux中找到MySQL的安装目录
前言 发布时间:2024-10-22 在日常管理和维护数据库的过程中,了解MySQL的确切安装位置对于执行配置更改、更新或者进行故障排查是非常重要的。本文将向您介绍几种在Linux环境下定位MySQL安装路径的方法。 通过命令行工具快速定位 使用 which 命令 首…...
机器人备件用在哪些领域
机器人备件,作为机器人技术的重要组成部分,被广泛应用于多个领域,以提高生产效率、降低成本、增强产品质量,并推动相关行业的智能化发展。以下是一些主要的应用领域: 制造业: 机器人备件在制造业中的应用最…...
基于单片机优先级的信号状态机设计
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、背景知识二、使用步骤1.定义相应状态和信号列表2.获取最高优先级信号3.通用状态机实现4.灯的控制函数 总结 前言 在嵌入式系统中,设备控制的灵…...
数字电路week3
数字电路学习 九.补充 1.Verilog和fpga verilog是一种描述电路的语言,出现于上世纪80年代 非:~与: &,或: |,异或: ^ fpga:一种可编程逻辑器件 FPGA 由大量的逻辑单元、查找表(LUTs)、触发…...
如何在 Linux 中对 USB 驱动器进行分区
如何在 Linux 中对 USB 驱动器进行分区 一、说明 为了在 Linux 上访问 USB 驱动器,它需要有一个或多个分区。由于 USB 驱动器通常相对较小,仅用于临时存储或轻松传输文件,因此绝大多数用户会选择只配置一个跨越整个 USB 磁盘的分区。但是&a…...
【STM32+HAL】STM32CubeMX学习目录
一、基础配置篇 【STM32HAL】微秒级延时函数汇总-CSDN博客 【STM32HAL】CUBEMX初始化配置 【STM32HAL】定时器功能小记-CSDN博客 【STM32HAL】PWM呼吸灯实现 【STM32HAL】DACDMA输出波形实现-CSDN博客 【STM32HAL】ADCDMA采集(单通道多通道)-CSDN博客 【STM32HAL】三重A…...
PPT自动化:Python如何修改PPT文字和样式!
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 使用 Python 修改 PPT 文本内容📝 遍历所有幻灯片和文本框📝 设置和修改文本样式📝 复制和保留文本样式⚓️ 相关链接 ⚓️📖 介绍 📖 在日常工作中,PPT 的文字内容和样式修改似乎是一项永无止境的…...
4:Java的介绍与基础4:for语句
4.1for循环 for循环也是一个非常重要的东西,再代码中是一个循环的作用,在python的文章中也介绍过了for循环的使用方法,其实在Java中也是一样的逻辑,但是有着不一样的表达,现在我们来讲一下关于for循环的东西。 因为循…...
R语言机器学习算法实战系列(十二)线性判别分析分类算法 (Linear Discriminant Analysis)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍LDA的原理LDA的步骤教程下载数据加载R包导入数据数据预处理数据描述数据切割构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve保存模型总结优点:缺…...
[LeetCode] 50. Pow(x, n)
题目描述: 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000示例 2: 输入:x 2.10000, n 3 输出…...
Vue学习笔记(七、事件修饰符 .stop .capture .self .once .prevent)
先看一段基本的代码: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>VueBaseCode</title><script src"./lib/vue.js"></script><style>.inner {width:…...
web网站搭建(静态)
准备工作: 关闭防火墙: [rootlocalhost ~]# systemctl disable --now firewalld 修改enforce为permissive [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# geten getenforce getent [rootlocalhost ~]# getenforce Permissive 重启服务 [rootloca…...
高效特征选择策略:提升Python机器学习模型性能的方法
高效特征选择策略:提升Python机器学习模型性能的方法 目录 🔍 特征选择的重要性📊 相关性分析🔄 递归特征消除 (RFE)🌳 基于模型的特征选择 1. 🔍 特征选择的重要性 特征选择在机器学习中至关重要&#…...
2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第四弹 第一题
#1024程序员节|征文# 往期回顾 前期准备 摄像头bug解决 手搓机械臂 视觉模块的封装 第一问: 需要将一颗黑棋,放入棋盘中的五号位置。 理想思路:依据摄像头,依据机械臂及其传感器。建立机械臂的逆运动学方程。然后完…...
优化多表联表查询的常见方法归纳
目录 一、使用mybatis的嵌套查询 二、添加表冗余字段,减少联表查询需求 三、分表预处理,前端再匹配 一、使用mybatis的嵌套查询 【场景说明】 前端需要展示一张列表,其中的字段来源于多张表,如何进行查询优化? 【…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
Java设计模式:责任链模式
一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...
