配置电子邮件传输:
电子邮件发送
服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端通过
/usr/bin/sendmail程序进行提交。如果该MTA是最终目标位置,邮件将传递至MDA。否
则,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。
MDA:“邮件发送代理”。MDA将邮件发送至收件人的本地邮件存储位置(默认情
况下是/var/spool/mail/user)。Postfix提供自己的MDA,以发送至基于文件的本地默认
邮件存储位置/usr/libexec/postfix/local.
转发:电子邮件服务器(MTA)将提交的邮件转发至另一个服务器,以进行发送
排队:失败的发送或转发尝试排队等待,并由MTA定义重试。(默认情况下,Postfix每小时执行此操作一次)
拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝
退回:远程服务器接受电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户
一、搭建前的准备工作
1.两台主机(虚拟机也可)
我用的是两台虚拟机
2.两台主机的ip在一个网段内
我的两个虚拟机的ip分别是:
172.25.254.190
172.25.254.191
3.修改主机名
[root@mailwestos ~]# hostnamectl set-hostname mailwestos.westos.com
[root@maillinux ~]# hostnamectl set-hostname maillinux.linux.com
4.在mailwestos.westos.com上先搭建DNS服务器
1>安装bind
[root@mailwestos ~]# yum install bind -y
2>修改配置文件
11 listen-on port 53 { any; };
17 allow-query { any; };
33 dnssec-validation no; ##不进行dnssec安全认证
3>#vim /etc/named.rfc1912.conf
修改内容如下:
zone "westos.com." IN {
type master;
file "westos.com.zone";
allow-update { none; };
};
zone "linux.com." IN {
type master;
file "linux.com.zone";
allow-update { none; };
};
4>#vim /var/named/westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.190
westos.com. MX 1 172.25.254.190.
#cp -p westos.com.zone linux.com.zone
#vim linux.com.zone
$TTL 1D
@ IN SOA dns.linux.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.190
linux.com. MX 1 172.25.254.191.
5>[root@mailwestos named]# systemctl restart named
测试:
[root@mailwestos named]# dig -t mx westos.com.
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> -t mx westos.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41193
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;westos.com. IN MX
;; ANSWER SECTION:
westos.com. 86400 IN MX 1 172.25.254.190.
;; AUTHORITY SECTION:
westos.com. 86400 IN NS dns.westos.com.
;; ADDITIONAL SECTION:
dns.westos.com. 86400 IN A 172.25.254.190
;; Query time: 0 msec
;; SERVER: 172.25.254.190#53(172.25.254.190)
;; WHEN: Fri Mar 10 20:43:40 EST 2017
;; MSG SIZE rcvd: 103
此时,DNS服务器就搭建好了
二、搭建postfix邮件服务器
1.搭建之前我们来先做个小实验:
先用mailwestos.ewestos.com 给maillinux.linux.com发邮件
[root@mailwestos named]# mail [email protected]
Subject: lsj
slkdjfls
.
EOT
[root@mailwestos named]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
50C9A17E860 445 Fri Mar 10 21:25:27 [email protected]
(connect to 172.25.254.229[172.25.254.229]:25: No route to host)
[email protected]
-- 0 Kbytes in 1 Request.
用maillinux.linux.com 给mailwestos.westos.com发邮件
[root@maillinux ~]# mail [email protected]
Subject: test
ljkdsf
.
EOT
You have mail in /var/spool/mail/root
[root@maillinux ~]# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
E666426D01A 443 Fri Mar 10 21:26:28 [email protected]
(Host or domain name not found. Name service error for name=westos.com type=MX: Host not found, try again)
[email protected]
-- 0 Kbytes in 1 Request.
可以发现,两台主机谁也发不了邮件;
现在我们来实现两台主机可以互发邮件:
在两台主机上都进行以下操作:
1>修改postfix的配置文件
[root@maillinux ~]# vim /etc/postfix/main.cf76 myhostname = maillinux.linux.com ##指定运行Postfix邮件系统的主机名
83 mydomain = linux.com ##指定运行 Postfix邮件系统主机的域名
99 myorigin = $mydomain ##指定发件人所在的域名
113 inet_interfaces = all ##接受来自所有网络的请求
116 #inet_interfaces = localhost ##这行注释掉
164 mydestination = $myhostname, $mydomain, localhost ##指定Postfix 的接收邮件的收件人域名
2>重启服务
[root@maillinux named]# systemctl restart postfix.service
3>防火墙
[root@maillinux ~]# firewall-cmd --permanent --add-service=smpt
[root@maillinux ~]# firewall-cmd --reload
[root@maillinux ~]# firewall-cmd --list-all
另一台主机也需