一、基础原理
简单邮件传输协议(SMTP)是因特网电子邮件系统首要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。跟大多数应用层协议一样,SMTP也存在两个端:在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器在向其他邮件服务器发送邮件消息时,它是作为SMTP客户在运行。当一个邮件服务器从其他邮件服务器接收邮件消息时,它是作为SMTP服务器在运行。
POP3:Post Office Protocol
IMAP4: Internet Mail Access Protocol
SASL:Simple Authintication Secure Layer ,简单认证安全层
MTA:邮件传输代理,SMTP服务器
LDAP:Lightweight Directory Access Protocol
二、邮件系统组成
1.用户代理MUA(Mail User Agent):“邮件用户代理”MUA是用在客户端的软件,主要的功能就是接收邮件主机的电子邮件,并提供用户浏览与编写邮件的功能
2.邮件传输代理MTA(mail Transfer agent):将来自于MUA的邮件转发给指定用户。
3.邮件投递代理MDA(mail delivery agent):将来MTA的邮件保存到本机的收件箱中。
三、邮件应用协议
发送方通过邮件用户代理程序(MUA),将编辑好的电子邮件向邮件传输代理服务器(SMTP)服务器)MTA发送。邮件传输代理服务器识别接收者的地址,并向管理该地址的邮件投递代理服务器(POP3服务器)MDA发送消息。邮件投递代理服务器MDA将邮件存放在接收者的电子信箱内,并告知接收者有新邮件到来。接收者通过邮件客户程序连接到服务器后,就会看到服务器的通知,进而打开自己的邮箱查看电子邮件。
一个最基础的电子邮件系统肯定要能提供发件服务和收件服务,为此需要使用基于SMTP协议的Postfix服务程序提供发件服务功能,并使用基于POP3协议的Dovecot服务程序提供收件服务功能。这样一来,用户就可以使用Outlook Express或Foxmail等客户端服务程序正常收发邮件了。电子邮件系统的工作流程如下图所示。
五、postfix的配置文件
postfix模块化:
master: /etc/postfix/master.cf
mail:/etc/postfix/main.cf
参数=值:参数必须写在行的绝对行首,以空白开头的行被认为是上一行的延续
SMTP相关命令:
helo
客户端为标识自己的身份而发送的命令(通常带域名)
mail from
标识邮件的发件人;以 mail from: 的形式使用
rcpt to
标识邮件的收件人;以 rcpt to: 的形式使用
data
客户端发送的,用于启动邮件内容传输的命令
turn 允许客户端和服务器交换角色,并在相反的方向发送邮件,而不必建立新的连接
六、搭建邮件服务器
centos7下使用postfix+dovecot搭建邮件服务器(防火墙关闭,SELinux关闭下)
1.搭建DNS服务器
yum install bind bind-utils
编辑配置文件
然后要记得开启服务
2.搭建postfix服务器及普通发信
配置服务器主机名称,需要保证服务器主机名称与发信域名保持一致
重启域名服务及关闭防火墙
安装postfix
yum install postfix
修改配置文件
vim /etc/postfix/main.cf
第83行,修改保存邮件的域名称
第99行,修改寄出邮件的域名称
第116、119行,修改定义的网卡监听地址
第164行,修改定义的可接收邮件的主机名或域名列表
新建用户user2用于测试
安装dovecot
编辑配置文件vim /etc/dovecot/dovecot.conf
设置dovecot服务程序支持的电子邮件协议
允许用户使用明文进行密码验证
设置允许登录的网段地址
配置邮件格式和储存路径vim /etc/dovecot/conf.d/10-mail.conf
开启服务
3、普通收信
可以看到邮件的存放位置,这是未发邮件前
发件测试
helo mail.com //声名本机
250 mail.com
mail from:[email protected] //声明发件人
250 2.1.0 Ok
rcpt to:[email protected] //声明收件人
250 2.1.5 Ok
data //写正文
354 End data with
hello!
. //正文结束标记
250 2.0.0 Ok: queued as 12A27206C86E
quit //退出
发件后,可以看到user2已经收到邮件
看一下内容
4、登录查看邮件
+OK Dovecot ready.
user user2 //收件人
+OK pass 1234 //密码
+OK Logged in.
list //列表查看邮件
+OK 1 messages:
1 377
.
retr 1 //读取编号为1的邮件
常见问题:
解决方法:安装telnet-server
然后安装并重启xinetd服务
2.无法登录查看邮件
解决方法:重启dovecot服务systemctl restart dovecot
3.账号密码正确因权限问题被拒绝
解决方法: