准备工作:
- 主机需要独立IP
- 需要一个顶级域名,并且mail主机的A记录指向服务器ip,MX标志指向mail主机。
首先先来讲解下邮件服务器的工作原理
邮件传输所需要的组件:MUA、MTA、MDA
相关协议:SMTP POP3 IMAP
MUA(mail uers agent)从字面意思来看是邮件用户代理,其实就是像Outlook Express(OE)、Foxmail一样的邮件客户端。MUA的主要功能是从MTA收取邮件,和向MTA发出要发送的邮件。
MTA (mail tansfer agent)就是邮件发送代理人,MUA将邮件发到这里,再由它发送到收件人MTA上。MTA的功能有:
- 接受邮件:使用简单邮件传输协议(SMTP)
将来自客户端或其他MAT的邮件收下来,这个时候MTA使用的是SMTP,占用port25. - 转发邮件
如果该邮件的目的地并不是本身的用户,且该封邮件的相关数据符合使用MTA的权利,那么MTA就会将该封邮件转发到下一台主机。这就是所谓的中继转发(Relay)功能。
总之一般提到邮件服务器其实就是说MTA。
MDA (mail delivery agent)字面意义上是邮件传输代理人,事实上是挂在MTA下面的一个小程序,最主要的功能是:分析有MTA所收到的邮件表头或内容等数据,来决定这封邮件的去向。其实上面MTA提到的转发功能就是用它来实现的,除了分析转发还有其他功能:
- 过滤垃圾邮件
可以根据表头和邮件内容来加以过滤,如 “赌博”、“色情”。 - 自动回复
MailBox就是电子邮箱,linux系统默认邮箱放在/var/spool/mail/用户账户。若MTA收到的邮件是本机用户,MDA会直接将邮件放到MailBox中。
MTA只是一个组件。实际上是通过MUA来解决的。相对于发件时的MTA这个概念,收件时是MRA(mail retrieval agent)。
MRA提供了邮件服务协议(post office protocol,pop)来接受自己的邮件,也可以通过IMAP(internet Message Access potocol)协议来讲自己的邮件保留在服务器上,并进一步建立文件夹等高级工作。也就是说客户端收邮件时使用的是MRA的pop和IMAP协议,并非SMTP。
POP3协议工作方式:MUA通过POP3协议连接MRA的port110端口,并输入账户密码取得认真。
IMAP 协议可以让你的MailBox数据存储到服务器上的用户主目录,既/home/账户/那个目录下,你不但可以建立文件夹,还可以为邮件分类。但IMAP的使用最好加上限制,如XFS文件系统下使用quota来限制硬盘权限,以免硬盘空间被用光。
好了,以上的以上的基础知识就介绍到这里,下面开始搭建。
CentOS8环境下搭建Mail服务器-MTA服务器(postfix)
可实现MAT的软件非常多,比如老牌的Sendmail,这个软件基本上可以淘汰了。因为代替他且更方便的postfix已经横空出世了。下面我们就对postfix的使用进行介绍。
CentOS8默认不带postfix,需要自行安装
dnf install postfix
或
yum install postfix
success后开始配置
vim /etc/postfix/main.cf
*以下参数撤掉注释符#*
myhostname = mail.xxx.net //主机名,取消这个注释就表示开放外网端口了,port=25
mydomain = xxx.net //域名
myorigin = $myhostname //发信时显示的“发信源”,使用 myhostname变量
inet_interfaces = all // 监听网卡接口,这里选择的是全部
mydestination = $myhostname, localhost.$mydomain, localhost, mail.xxx.net // 设置能够收信的主机名
mynetworks = 127.0.0.0/8, 192.168.3.0/24 // 规定信任的客户端,不信任的话不转发。
relay_domains = $mydestination // 规范可以帮忙Relay的下一个MTA主机地址, 这个可以保持默认。
alias_maps = hash:/etc/aliases //设置邮件别名
按照以上设置好后启动postfix服务,并设置开机默认启动。
systemctl start postfix //启动
systemctl enable postfix //添加开机自启
使用 netstat -nlptu |grep :25 检查服务开放情况
出现了这个,说明IPv4和IPv6均开放正常。
开放防火墙prot=25
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --zone=public --add-port=25/udp --permanent
使用mail发一封邮件测试一下。
echo "Receiving an email indicates that the test was successful" |mail -s "Test email 01 " 19491135@163.com
好,发送没问题。接下来回复一个邮件,看看接收的怎么样。
至此MTA搭建完毕,由于没有MRA查看邮件特别的不方便。接下来我们添加MRA。
安装与配置MRA服务器--dovecot
安装:
yum install dovecot
配置:
vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
disable_plaintext_auth = no //添加此项,允许使用明文
vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no //取消注释并修改
auth_mechanisms = plain login //认证方式
vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir //取消注释,将用户的家目录设置为邮件目录
vim /etc/dovecot/conf.d/10-master.conf
unix_listener /var/spool/postfix/private/auth { //88-90行: 取消注释并添加Postfix smtp验证
mode = 0666
user = postfix
group = postfix
}
至此配置完毕。
启动dovecot并添加开机自启,开放端口到防火墙:
systemctl start dovecot
systemctl enable dovecot
firewall-cmd --zone=public --add-port=110/tcp --permanent //pop3协议是110端口
firewall-cmd --zone=public --add-port=110/udp --permanent
firewall-cmd --zone=public --add-port=143/tcp --permanent //IMAP协议是143端口
firewall-cmd --zone=public --add-port=143/udp --permanent
win10使用Foxmail软件收发邮件,配置如下
协议使用POP和IMAP均可。
我去。密码是多少。兄弟。