邮件服务系列之一基础原理
Mail Server:
SMTP:Simple Mail Transfer Protocol 简单邮件传输协议
ESMTP :Extend Simple Mail Transfer Protocol
POP3:Post Office Protocol邮局协议版本3
IMAP4:Internet Mail Access Protocol交互式邮件存取协议
邮件系统的工作:
互联网诞生不久出现了UUCP:Unix to Unix Copy unix主机之间复制文件的协议,指定源主机以及目标主机,这个协议极其的简陋
随着IT产业的发展,出现smtp协议:不仅可以实现简单邮件的传输,还可以实现路由功能,
发送方到目标主机,由smtp实现邮件中继的功能,从而实现路由。smtp工作方式,基于三次握手
SMTP服务包括服务端为:smtpd,客户端为:smtp
服务器端smtpd监听TCP协议的25号端口,客户端smtp占用一般大于5000的端口
smtp工作的简单原理:
服务器想要给客户端发送一封邮件,其首先需要在自己的主机上编辑一封邮件,可以使用shell等文字编辑器,然后发送传输的命令,最忌进行dns戒子,解析到目标主机的ip,接着如同现实生活中的邮递员一样,邮递员并不能够将信件放在收信人的家里的餐桌上,而只是能够将信件放在收信人家对应的邮箱中,而客户端收到来自服务器的邮件也是相同的,smtp服务并不拥有root用户的权限,不在root组里,因此就需要一个能够暂时存放邮件的地方,将邮件存放在客户端的家目录下,当用户阅读完邮件之后,在客户端的家目录下会有一个叫做mbox的文件来存放已经阅读过的邮件,如下所示
1.命令行输入mail查看发送的邮件1
2.按q退出后可以看到saved 1 message in mbox
并且查看家目录下存在一个叫“mbox”的文件
邮件服务的详细过程:
MUA(mail user agent:邮件用户代理)编辑完成邮件之后,将邮件提交给本机上的一个邮件服务器smtpd,而不是直接传输给远程,由邮件服务器来进行分拣,判断将其发送到哪里,分拣为两类,一类是发送给主机的邮件,成为lmtp(本地邮件传输协议),另一类为发向远程的邮件则smtpd调用本地客户端smtp,来连接另一台主机的smtpd服务器端,则本机的smtpd成为MTA(mail transfer agent邮件分拣代理)
2. 当对方smtpd收到邮件之后,通过MD(mail delivery agent邮件投递代理,接着通过自己的MUA查看邮件,保存为自己的mbox中
ps:回复邮件的过程一样的道理,所以对于两台相互发送邮件的主机来说,都拥有smtpd以及smtp
若smtpd发现收到的邮件的目标主机并不是自己,则会将邮件通过smtp将邮件转发给认为是目标主机的smtpd,而且会在邮件上盖戳,以此类推。
openrelay:开放式中继,有被滥用的风险,因此要关闭开放式中继,但是现在的技术已经能够
实现精准的发送,但是其实在主机内部也有中继的实现,并且也可能会发生内部滥用,因此要使用认证的方法来控制用户的使用,从而避免滥用。
所以需要借助于额外的认证工具来实现认证,SASL:(simple authentication secure layer)
简单认证安全层,只需要输入用户的账号以及密码,即可完成认证,服务器上要拥有一个SASL服务器,smtpd通过SASL的认证,从而实现用户的控制,防止滥用
MRA(mail retrival agent )邮件检索代理(取回代理)
Post Office Protocol - Version 3”,即“邮局协议版本3”。
POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但目前的POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。
一个邮件系统的实现,需要很多很多的方面的知识,实现一封邮件的发送,通过对于有邮件系统的简单了解,我们接下来可以在自己的linux系统中安装邮件系统。
预知后事如何,请看下回分解。
转载于:https://blog.51cto.com/mi55u/1914086
邮件服务系列之一基础原理相关推荐
- Android自定义控件开发系列(零)——基础原理篇
在后边的文章中发现在说Android自定义时,有时候要重复解释很多东西,所以想想返回来增加一篇"基础原理篇",直接进入正题吧-- 首先的问题是:在Android项目开发中,什么时候 ...
- mysql邮箱认证_邮件服务系列postfix+sasl+mysql实现用户认证功能
1.卸载bind [root@mail ~]# rpm -e bind-utils 2.安装bind97-utils bind97-libs bind97 [root@mail ~]# yum ins ...
- 邮件服务 php,PHP基础-邮件服务
PHP mail() 函数 PHP mail() 函数用于从脚本中发送电子邮件. 语法 mail(to,subject,message,headers,parameters) 参数 描述 to 必需. ...
- 创建基于MailKit和MimeKit的.NET基础邮件服务
邮件服务是一般的系统都会拥有和需要的功能,但是对于.NET项目来说,邮件服务的创建和使用会较为的麻烦..NET对于邮件功能提供了System.Net.Mail用于创建邮件服务,该基础服务提供邮件的基础 ...
- 【飞控开发基础教程10】疯壳·开源编队无人机-PID 基础原理
COCOFLY教程 --疯壳·无人机·系列 PID 基础原理 图1 一.PID 简介 PID 控制是自动控制系统中最常用的一种控制手段,它的诞生主 ...
- 微服务系列:服务注册与发现的实现原理、及实现优劣势比较
服务注册与发现的来源 首先,服务注册与发现是来自于微服务架构的产物. 在传统的服务架构中,服务的规模处于运维人员的可控范围内.当部署服务的多个节点时,一般使用静态配置的方式实现服务信息的设定.而在微服 ...
- SpringBoot系列九:SpringBoot服务整合(整合邮件服务、定时调度、Actuator监控)
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot 服务整合 2.背景 在进行项目开发的时候经常会遇见以下的几个问题:需要进行邮件发送.定时的任务调 ...
- 基础服务系列-Hyper-V 安装centos7
2019独角兽企业重金招聘Python工程师标准>>> 前言 docker for windows在Windows10 上安装,各种问题,打算放弃了... 问题1 可能是没有分配IP ...
- Springboot 系列(十三)使用邮件服务
在我们这个时代,邮件服务不管是对于工作上的交流,还是平时的各种邮件通知,都是一个十分重要的存在.Java 从很早时候就可以通过 Java mail 支持邮件服务.Spring 更是对 Java mai ...
- Spring Cloud构建微服务架构:分布式服务跟踪(收集原理)【Dalston版】
在本节内容之前,我们已经对如何引入Sleuth跟踪信息和搭建Zipkin服务端分析跟踪延迟的过程做了详细的介绍,相信大家对于Sleuth和Zipkin已经有了一定的感性认识.接下来,我们介绍一下关于Z ...
最新文章
- 平均年薪50.8万,这个证书真!香!
- Android 使用加速度传感器实现摇一摇功能及优化
- 散列表查找的一个实例
- Alpha 冲刺 —— 十分之八
- [转]Linux环境下段错误的产生原因及调试方法小结
- Spring-Bean标签属性scope范围
- GDCM:dicom文件的SHA1测试程序
- 二阶龙格库塔公式推导_DeepFM原理推导
- 数据库管理工具DBeaverEE 22 for Mac企业版
- 阿里云郑晓:浅谈GPU虚拟化技术(第三章)
- ROS实验笔记之——基于ArUco Marker来估算camera的位姿
- IE浏览器老是假死怎么办 IE假死的解决办法
- python 包络线_如何简明易懂地说明数据包络线分析法(DEA)?
- “但行好事 莫问前程 只问耕耘 不问收获 成功不必在我 而功力必不唐捐” 科技袁人·年终盛典——5G是科技时代非常重要的基础设施...
- 固态硬盘对于linux提升,固态硬盘在Linux系统下提升使用率妙方
- 锁的优化机制了解嘛?请进!
- 新造车杀入15万,燃油车慌了?
- 基于嵌入式ARM工控主板与X86工控主板的比较
- 智慧公寓管理系统解决方案
- arthas的监控java性能