首页 > 代码库 > 邮件服务系列之一基础原理
邮件服务系列之一基础原理
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系统中安装邮件系统。
预知后事如何,请看下回分解。
本文出自 “牛顿也吃苹果” 博客,请务必保留此出处http://mi55u.blog.51cto.com/11619321/1914086
邮件服务系列之一基础原理