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

wKiom1jobfmTIch2AAA6tyEUNNY167.png-wh_50

邮件服务系列之一基础原理_第1张图片

2.按q退出后可以看到saved 1 message in mbox

并且查看家目录下存在一个叫“mbox”的文件

wKioL1jobfrAZnIiAACkPtltSOs177.png-wh_50


邮件服务的详细过程:

  1. 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系统中安装邮件系统。


预知后事如何,请看下回分解。