聊一聊电子邮件?

电子邮件是什么?

电子邮件是一种基于客户/服务器架构的应用。功能是实现人与人之间的交流。直到现在,电子邮件依然是当前因特网

注意:基于客户/服务器方式和基于B/S架构不一样!客户/服务器表示的范围更广,当基于客户/服务器模式的引用中客户端时浏览器时,才能说它是B/S架构。

电话也能实现人与人之间的交流,为什么还要电子邮件?

因为电话通信是属于实时通信,实时通信有很多好处,但也有一些缺点:

  • 电话通信中主叫和被叫双方必须同时在场
  • 一些不是十分紧迫的电话也常常不必要地打断人们的工作、休息

这也是电子邮件在现在还没有被取代的原因。

电子邮件实现交流的过程?

电子邮件与邮政系统的寄信类似
在这里插入图片描述

电子邮件是一个客户/服务器架构的应用,这个应用有哪些构件组成?

组成电子邮件系统的构件主要有三个:

  1. 用户代理
  2. 邮件服务器
  3. 电子邮件所需的协议

用户代理就是电子邮件的客户端,帮助用户将邮件发送到对应的邮件服务器。电子邮件是居于客户/服务器模式的应用,用户代理就是指这个客户。用户与电子邮件系统的接口,又称为电子邮件客户端软件

邮件服务器,将邮件转发给目标邮件服务器,提供邮件存储、管理、转发、接收、下载等功能。邮件服务器是电子邮件系统的基础设施。因特网上的所有ISP(Internet Service Provider,互联网服务提供商0)都有邮件服务器,其功能是负载发送和接收邮件,同时还要负责维护用户的邮箱。

电子邮件所需的协议分为发送电子邮件协议(SMTP)和接收电子邮件协议(POP3,IMAP4)
在这里插入图片描述

什么是SMTP服务器?

SMTP:Simple Mail Transfer Protocol

SMTP协议用于用户使用用户代理(电子邮件客户端软件)向电子邮件服务器发送电子邮件。而由于电子邮件是基于客户/服务器模式的,所以SMTP协议也分成SMTP客户和SMTP服务器。

一次SMTP邮件发送分为:SMTP客户和SMTP服务器两个角色。

在这里插入图片描述

SMTP协议的基本工作原理是什么?

SMTP协议用于发送邮件,在使用SMTP协议发送邮件这个过程中分为两个角色:SMTP客户和SMTP服务器。

首先,SMTP客户会与SMTP服务器建立tcp连接,使用熟知的端口25
在这里插入图片描述

建立TCP连接之后,SMTP客户就可以向服务器发送命令,一共有14条SMTP命令。而SMTP服务器也会给SMTP客户发送相应的应答一个21种。
在这里插入图片描述
SMTP协议基于tcp连接,通过这种命令与应答交互方式,实现将邮件从SMTP客户发送到SMTP服务器。

SMTP协议发送邮件的具体过程:

  • SMTP客户向SMTP服务器发起TCP连接请求,SMTP客户与SMTP服务器建立TCP连接。
  • 建立Tcp连接后,有SMTP服务器主动向SMTP客户推送服务器就绪应答,应答代码是220。
  • SMTP客户向SMTP服务器说明身份,告知自己SMTP服务器的域名。
  • SMTP服务器验证身份,如果身份有效,返回应答代码250。
  • SMTP客户告诉SMTP服务器发件人邮箱是什么。
  • SMTP服务器验证发件人邮箱,如果认为发件人邮箱合理,返回为应答代码250。
  • SMTP客户告诉SMTP服务器收件人邮箱是什么。
  • SMTP服务器验证收件人邮箱,如果收件人邮箱地址存在,返回为应答代码250。
  • SMTP客户向SMTP服务器发送DATA命令,告诉SMTP服务器自己要准备发送邮件内容了。
  • SMTP服务器如果准备好接收返回应答代码345。
  • SMTP客户收到该应答后,就像SMTP服务器发送邮件内容。
  • SMTP客户发送完邮件内容后,需要发送结束符。
  • SMTP服务器收到结束符后就会去检查是否收件成功,如果成功,就向SMTP客户发送应答代码250。
  • SMTP客户收到该应答之后,向SMTP服务器发送QUIT命令,请求端口连接。
  • SMTP接收到QUIT命令后,向SMTP客户发送应答代码221表示接收请求并主动断开连接。

图片来源
图片来源:https://www.bilibili.com/video/BV12E411x74e/?spm_id_from=333.337.search-card.all.click&vd_source=4429c4782cfe0a22523a00fa5bf3f7e6

HTPP协议和SMTP协议都只能传送ASCII,为什么现在的网页或邮件可以传输图片、视频等二进制文件呢?

这是由于MIME(Multipurpose Internet Mail Extensions),多用途因特网邮件拓展的存在。它可以讲用户发送的中文、图片、视频等非ASCII码文件转为ASCII码然后再经过HTTP或SMTP协议传输。
在这里插入图片描述
在这里插入图片描述

介绍一下基于万维网的电子邮件?

万维网是WWW的音译,也可以叫做Web。WWW通过HTTP协议向用户提供服务,是基于因特网(tcp/ip)访问的。WWW是由互相链接的超文本组成的系统。
在这里插入图片描述
在基于Web的电子邮件应用种,用户通过登录邮件服务器万维网站就可以撰写、转发阅读、管理电子邮件。用户无需安装专门的用户代理(电子邮件客户端软件),只需有一个万维网浏览器即可。

邮件服务器网站有非常强大的和方便的邮件管理功能,用户可以在邮件服务器网站上管理和处理自己的邮件,而不需要将邮件下载到本地进行管理。

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux环境jdk、git、maven、MySQL和redis的安装和配置

这里整理了在Linux上如何安装和配置jdk、git、maven、MySQL和redis,主要用于在Linux上部署Java项目 文章中博主使用了一个叫FinalShell远程连接软件进行上传,如果没有类似的工具也可以直接通过yum命令行下载包 博主使用的Linux服务器为centos7&#xf…

2024最新版Android studio安装入门教程(非常详细)

目录 JDK安装与配置 一、下载JDK 二、JDK安装 三、JDK的环境配置 四、JDK的配置验证 Android studio安装 Android studio连接手机真机调试(以华为鸿蒙为例) 一、新建一个android项目 二、进入项目面板 三、配置Android Studio 四、安装手机驱…

【JavaSE】初识线程,线程与进程的区别

文章目录 ✍线程是什么?✍线程和进程的区别✍线程的创建1.继承 Thread 类2.实现Runnable接口3.匿名内部类4.匿名内部类创建 Runnable ⼦类对象5.lambda 表达式创建 Runnable ⼦类对象 ✍线程是什么? ⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按…

BigInteger的应用

这里写目录标题 例题BigInteger常用方法关于BigInteger初始化为nullcompareTo()方法 : 返回一个int型数据(1 大于; 0 等于 ; -1 小于) 例题 import java.math.BigInteger; import java.util.*; public class Main{public static void main(String[] args) {BigInteger n BigIn…

android 消息提醒

1.创建 MyBackgroundService.java 继承 Service public class MyBackgroundService extends Service {Overridepublic void onCreate() {super.onCreate();Log.i("业务服务", "开起业务服务");//调用服务后在页面手机上创建一个通知消息。if (android.os…

TS的基础

TS Typed JavaScript at Any Scale. 它强调了 TypeScript 的两个最重要的特性——类型系统、适用于任何规模。 我们知道,JavaScript 是一门非常灵活的编程语言, 它没有类型约束,一个变量可能初始化时是字符串,过一会儿又被赋值为…

如何用 C++ 在 10 行内写出八皇后?

在编程世界中,有时挑战在于以最简洁的方式表达复杂的逻辑。八皇后问题就是这样一道经典难题,它要求在88的棋盘上放置8个皇后,使得任意两个皇后之间都不能位于同一行、同一列或同一斜线上。虽然这个问题可以通过多种算法解决,包括递…

Scala介绍与环境搭建

Scala环境搭建与介绍 一、Scala环境搭建 1、环境准备与下载 2、验证Scala 3、IDEA新建项目,配置Scala,运行Hello world 二、Scala介绍 1、Scala 简介 2、Scala 概述 一、Scala环境搭建 1、环境准备与下载 JDK1.8 Java Downloads | Oracle 下载需求版本…

代码随想录|Day29|贪心04|860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

860.柠檬水找零 我们维护三种金额的数量:five,ten,twenty 有如下三种情况: 账单是5:five 1,无需找零账单是10:ten 1,找零一张5元(five - 1)账单是20&#x…

Eclipse EMF教程(上)

What every Eclipse developer should know about EMF 翻译自:https://eclipsesource.com/blogs/tutorials/emf-tutorial/ 本教程是对EMF的介绍,解释了EMF的基础知识。我们首先向您展示如何基于EMF构建一个非常简单的以数据为中心的应用程序&#xff0c…

MES_ENT_STD

生产执行系统(企业标准版)MES_ENT_STD ERP_ENT_STD_59438.ieqq.ent-CSDN博客 OAMS_ENT_STD-CSDN博客

分类预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积长短期记忆网络多输入分类预测

分类预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积长短期记忆网络多输入分类预测 目录 分类预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积长短期记忆网络多输入分类预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 基本介绍 MATLAB实现BO-CNN-LSTM贝叶斯优化卷积长短期记…

主干网络篇 | 利用RT-DETR模型主干HGNet去替换YOLOv8的主干

前言:Hello大家好,我是小哥谈。众所周知,实时目标检测(Real-Time Object Detection)一直被YOLO系列检测器统治着,YOLO版本更是炒到了v9,前段时间百度飞桨的PaddleDetection团队发布了一个名为RT-DETR的检测器,宣告其推翻了YOLO对实时检测领域统治。论文标题很直接:《D…

WPF上使用MaterialDesign框架---下载与配置

一、介绍: Material Design语言的一些重要功能包括 系统字体Roboto的升级版本 ,同时颜色更鲜艳,动画效果更突出。杜拉特还简要谈到了新框架的一些变化。谷歌的想法是让谷歌平台上的开发者掌握这个新框架,从而让所有应用就有统一的…

Python 常用内置库 time库、random库、turtle库

文章目录 一、time库二、random库三、turtle库1. 绘制正方形2. 使用海龟对象绘制六边形3. 绘制多个起点相同大小不同起点的五角星4. 绘制多个图形和添加文字 提示:以下是本篇文章正文内容,下面案例可供参考 一、time库 time是最基础的时间处理库&#…

CAJViewer7.3 下载地址及安装教程

CAJViewer是中国学术期刊(CAJ)全文数据库的专用阅读软件。CAJViewer是中国知识资源总库(CNKI)开发的一款软件,旨在方便用户在线阅读和下载CAJ数据库中的学术论文、期刊和会议论文等文献资源。 CAJViewer具有直观的界面…

Kubernetes之Projected Volume

目录 四种Projected Volume Secret 使用方法 应用场景 示例 ConfigMap 使用方法 应用场景 示例 Downward API 使用方法 应用场景 示例 ServiceAccountToken 使用方法 应用场景 示例 在 Kubernetes 中,有几类特殊的 Volume,它们存在的意义不是为了存放容器里的…

深入探索位图技术:原理及应用

文章目录 一、引言二、位图(Bitset)基础知识1、位图的概念2、位图的表示3、位图操作 三、位图的应用场景1、数据查找与存储2、数据去重与排序 四、位图的实现 一、引言 位图,以其高效、简洁的特性在数据处理、存储和检索等多个领域发挥着举足…

抽象类和接口的简单认识

目录 一、抽象类 1.什么是抽象类 2.抽象类的注意事项 3.抽象类与普通类的对比 二、接口 1.接口的简单使用 2.接口的特性 3.接口的使用案例 4.接口和抽象类的异同 一、抽象类 所谓抽象类,就是更加抽象的类,也就是说,这个类不能具体描…

文献学习-23-MRM:用于遗传学医学图像预训练的掩码关系建模

MRM: Masked Relation Modeling for Medical Image Pre-Training with Genetics Authors: Qiushi Yang, Wuyang Li, Baopu Li, Yixuan Yuan Source: ICCV 2023 Abstract: 关于自动多模态医疗诊断的 ODERN 深度学习技术依赖于大量的专家注释,这既耗时又令人望而却…