CentOS7与ubuntu16建立Postfix邮件服务

1. 安装并,查看Postfix运行状况

Postfix在CentOS中是默认配置好了的,你只需要通过service postfix status 来查看Postfix的运行情况。但是在ubuntu16中并没有默认安装,所以要使用apt-get install -y postfix进行安装。

CentOS中Postfix的安装和运行:


CentOS7与ubuntu16建立Postfix邮件服务_第1张图片
50FB5CF3-E2BE-4081-85E7-912B14A78B71.png
CentOS7与ubuntu16建立Postfix邮件服务_第2张图片
945F5393-EDB0-43D4-9841-462286C413CD.png

ubuntu16中Postfix的安装和运行:

CentOS7与ubuntu16建立Postfix邮件服务_第3张图片
EC785EEB-FAEB-4506-BD6E-8DC688E01275.png
CentOS7与ubuntu16建立Postfix邮件服务_第4张图片
428A91E9-EB39-4250-AA29-125854D93626.png

这里可以看出都已经安装并运行起来,没有任何问题。

2. Postfix配置

Postfix的配置文件安装完成后会自动保存在/etc/postfix/文件夹中,这里ubuntu和CentOS都是同样的位置(以下如果不特殊指出ubuntu和CentOS都是一样):

CentOS7与ubuntu16建立Postfix邮件服务_第5张图片
FD71370E-15F8-48F5-8AF9-68F55487C88C.png

这里最主要的配置文件是man.cf,但是并不建议通过修改这个文件本身去修改Postfix配置,而是通过postconf命令进行修改:

  • postconf -d (default)显示默认Postfix配置,一般配合 grep 查询目标配置。
  • postconf -n (now)显示当前Postfix配置,一般也是配合grep 查询目标配置
CentOS7与ubuntu16建立Postfix邮件服务_第6张图片
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目录下的用户
CentOS7与ubuntu16建立Postfix邮件服务_第7张图片
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
CentOS7与ubuntu16建立Postfix邮件服务_第8张图片
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

CentOS7与ubuntu16建立Postfix邮件服务_第9张图片
Paste_Image.png

上面是将named-chroot服务打开,以及修改本地域名服务器配置文件,修改为本机(DNS服务器)IP,CentOS和ubuntu都是需要修改的,这里是将CentOS作为DNS服务器。
然后修改 /var/named/chroot/etc/named.conf文件,添加以下两个域名,方便后面进行解析
CentOS7与ubuntu16建立Postfix邮件服务_第10张图片
Paste_Image.png

然后配置这2个zone文件:
CentOS7与ubuntu16建立Postfix邮件服务_第11张图片
Paste_Image.png

CentOS7与ubuntu16建立Postfix邮件服务_第12张图片
Paste_Image.png

CentOS7与ubuntu16建立Postfix邮件服务_第13张图片
Paste_Image.png

因为是CentOS作为DNS服务器,所以在用ubuntu试着连接CentOS的时候,先要将CentOS防火墙以及Selinux设置为可连接:
CentOS7与ubuntu16建立Postfix邮件服务_第14张图片
Paste_Image.png

上面设置以后就可以用ubuntu连接CentOS了
CentOS7与ubuntu16建立Postfix邮件服务_第15张图片
Paste_Image.png

这样就可以看到无论是在CentOS还是ubuntu上都是可以解析到我们所需要发送的两个主机名,这里也要检查下ubuntu上的Postfix中的myhostname是否是我们所指定的主机名。
还有就是要将之前说过的监听服务设置成所有:
Paste_Image.png

5. 互通邮件

CentOS ====>>> ubuntu
Paste_Image.png

CentOS7与ubuntu16建立Postfix邮件服务_第16张图片
Paste_Image.png
ubuntu====>>> CentOS
Paste_Image.png

CentOS7与ubuntu16建立Postfix邮件服务_第17张图片
Paste_Image.png

如果其中有什么问题,最先考虑的是配置更改后是否有重启服务让配置生效!!

你可能感兴趣的:(CentOS7与ubuntu16建立Postfix邮件服务)