1. 安装并,查看Postfix运行状况
Postfix在CentOS中是默认配置好了的,你只需要通过service postfix status 来查看Postfix的运行情况。但是在ubuntu16中并没有默认安装,所以要使用apt-get install -y postfix进行安装。
CentOS中Postfix的安装和运行:
50FB5CF3-E2BE-4081-85E7-912B14A78B71.png
945F5393-EDB0-43D4-9841-462286C413CD.png
ubuntu16中Postfix的安装和运行:
EC785EEB-FAEB-4506-BD6E-8DC688E01275.png
428A91E9-EB39-4250-AA29-125854D93626.png
这里可以看出都已经安装并运行起来,没有任何问题。
2. Postfix配置
Postfix的配置文件安装完成后会自动保存在/etc/postfix/文件夹中,这里ubuntu和CentOS都是同样的位置(以下如果不特殊指出ubuntu和CentOS都是一样):
FD71370E-15F8-48F5-8AF9-68F55487C88C.png
这里最主要的配置文件是man.cf,但是并不建议通过修改这个文件本身去修改Postfix配置,而是通过postconf命令进行修改:
postconf -d (default)显示默认Postfix配置,一般配合 grep 查询目标配置。
postconf -n (now)显示当前Postfix配置,一般也是配合grep 查询目标配置
Paste_Image.png
Paste_Image.png
postconf -e "key = value" (这里的""不能省略)则是修改当前的配置。这种修改方式的好处是,如果你输入了配置文件不匹配的规则,用postconf -d或者-n是会提示你不能用的参数,必须要去main.cf配置文件去删掉:
Paste_Image.png
Paste_Image.png
我们还可以通过netstat -tupln | grep master命令去查看当前Postfix的监听端口(这里的-tupln是指列出所有TCP和UDP正在Listen的端口,p 显示建立相关链接的程序名,-n 选项禁用域名解析功能):
Paste_Image.png
这里已经将监听端口改成了ALL,是因为我们需要的不只是默认值当中监听本机的25端口,而是需要监听来自其他网络的25端口,这样才可以互相通信。
下面我们需要更改下Postfix配置文件中的myhostname和mydomain两个选项,因为所发邮件“@”符号后所跟的就是你的主机名,也就是myhostname,一般默认myhostname就是本机的hostname,但是如果你更改了myhostname,而本机的hostname没有更改,就要写你myhostname,如下:
Paste_Image.png
从这里看出myhostname=mail.jovi.net,而hostname为Centos-V。到此即便将本机的BIND(DNS)服务关掉也是可以在本机内的用户互相通信发送email的,因为此时只是通过Postfix服务进行本机解析,主要是通过:
Paste_Image.png
mydestiantion 来进行接收发送邮件,这个的意思是只要我们发送的邮件是给我们本机所在用户,也就是/var/spool/mail目录下的用户
Paste_Image.png
都是可以互相发送邮件,而从上上一张图可以看出mydestination = $myhostname,localhost.$mydomain,localhost。意思是在本机发送邮件给alice,david,jovi等等这些用户,并且@符号后跟mail.jovi.net($myhostname),或者localhost.jovi.net($mydomain = jovi.net)或者,localhost。都是可以发送通过并且成功接收的。
这里的postfix配置需要注意的一点就是每一次以postconf -e修改配置后都是需要重启postfix服务来让新配置生效的
3. 本地发送邮件验证Postfix正常运行
Paste_Image.png
Paste_Image.png
Paste_Image.png
从上面3 个图都可以看出 通过用户名@mydestionation的方式都是可以成功发送并接受邮件的,这里发送邮件的命令是:mail -vs "subject" username@mydestionation -vs的意思是详细显示信息和输入主题,输入此命令后,敲回车,然后就可以输入正文了,最后以Ctrl+d结束写邮件并发送。
如果想要删除某用户下的所有邮件,只需要将其/var/spool/mail目录下的文件清空就可以了,可以使用echo "" > /var/spool/mail/jovi命令
4 .配置BIND服务
以上都是在本地如何验证Postfix服务运行正常并进行本机用户的邮件互通。现在如果我们想要本机和其他机器进行通信就必须使用DNS,这是Postfix非本机互通的前提:
Paste_Image.png
Paste_Image.png
Paste_Image.png
上面是将named-chroot服务打开,以及修改本地域名服务器配置文件,修改为本机(DNS服务器)IP,CentOS和ubuntu都是需要修改的,这里是将CentOS作为DNS服务器。
然后修改/var/named/chroot/etc/named.conf文件,添加以下两个域名,方便后面进行解析
Paste_Image.png
然后配置这2个zone文件:
Paste_Image.png
Paste_Image.png
Paste_Image.png
因为是CentOS作为DNS服务器,所以在用ubuntu试着连接CentOS的时候,先要将CentOS防火墙以及Selinux设置为可连接:
Paste_Image.png
上面设置以后就可以用ubuntu连接CentOS了
Paste_Image.png
这样就可以看到无论是在CentOS还是ubuntu上都是可以解析到我们所需要发送的两个主机名,这里也要检查下ubuntu上的Postfix中的myhostname是否是我们所指定的主机名。
还有就是要将之前说过的监听服务设置成所有:
Paste_Image.png
5. 互通邮件
CentOS ====>>> ubuntu
Paste_Image.png
Paste_Image.png
ubuntu====>>> CentOS
Paste_Image.png
Paste_Image.png
如果其中有什么问题,最先考虑的是配置更改后是否有重启服务让配置生效!!