linux7 postfix,CentOS7与ubuntu16建立Postfix邮件服务

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

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

CentOS中Postfix的安装和运行:

1443136a80bb

50FB5CF3-E2BE-4081-85E7-912B14A78B71.png

1443136a80bb

945F5393-EDB0-43D4-9841-462286C413CD.png

ubuntu16中Postfix的安装和运行:

1443136a80bb

EC785EEB-FAEB-4506-BD6E-8DC688E01275.png

1443136a80bb

428A91E9-EB39-4250-AA29-125854D93626.png

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

2. Postfix配置

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

1443136a80bb

FD71370E-15F8-48F5-8AF9-68F55487C88C.png

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

postconf -d (default)显示默认Postfix配置,一般配合 grep 查询目标配置。

postconf -n (now)显示当前Postfix配置,一般也是配合grep 查询目标配置

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

postconf -e "key = value" (这里的""不能省略)则是修改当前的配置。这种修改方式的好处是,如果你输入了配置文件不匹配的规则,用postconf -d或者-n是会提示你不能用的参数,必须要去main.cf配置文件去删掉:

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

我们还可以通过netstat -tupln | grep master命令去查看当前Postfix的监听端口(这里的-tupln是指列出所有TCP和UDP正在Listen的端口,p 显示建立相关链接的程序名,-n 选项禁用域名解析功能):

1443136a80bb

Paste_Image.png

这里已经将监听端口改成了ALL,是因为我们需要的不只是默认值当中监听本机的25端口,而是需要监听来自其他网络的25端口,这样才可以互相通信。

下面我们需要更改下Postfix配置文件中的myhostname和mydomain两个选项,因为所发邮件“@”符号后所跟的就是你的主机名,也就是myhostname,一般默认myhostname就是本机的hostname,但是如果你更改了myhostname,而本机的hostname没有更改,就要写你myhostname,如下:

1443136a80bb

Paste_Image.png

从这里看出myhostname=mail.jovi.net,而hostname为Centos-V。到此即便将本机的BIND(DNS)服务关掉也是可以在本机内的用户互相通信发送email的,因为此时只是通过Postfix服务进行本机解析,主要是通过:

1443136a80bb

Paste_Image.png

mydestiantion 来进行接收发送邮件,这个的意思是只要我们发送的邮件是给我们本机所在用户,也就是/var/spool/mail目录下的用户

1443136a80bb

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正常运行

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

1443136a80bb

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非本机互通的前提:

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

上面是将named-chroot服务打开,以及修改本地域名服务器配置文件,修改为本机(DNS服务器)IP,CentOS和ubuntu都是需要修改的,这里是将CentOS作为DNS服务器。

然后修改/var/named/chroot/etc/named.conf文件,添加以下两个域名,方便后面进行解析

1443136a80bb

Paste_Image.png

然后配置这2个zone文件:

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

因为是CentOS作为DNS服务器,所以在用ubuntu试着连接CentOS的时候,先要将CentOS防火墙以及Selinux设置为可连接:

1443136a80bb

Paste_Image.png

上面设置以后就可以用ubuntu连接CentOS了

1443136a80bb

Paste_Image.png

这样就可以看到无论是在CentOS还是ubuntu上都是可以解析到我们所需要发送的两个主机名,这里也要检查下ubuntu上的Postfix中的myhostname是否是我们所指定的主机名。

还有就是要将之前说过的监听服务设置成所有:

1443136a80bb

Paste_Image.png

5. 互通邮件

CentOS ====>>> ubuntu

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

ubuntu====>>> CentOS

1443136a80bb

Paste_Image.png

1443136a80bb

Paste_Image.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值