首先,在两台虚拟机上配置好相应的网络服务:
A端:hostnamectl set-hostname mailqq.qq.com
IP为:172.25.254.108
yum install bind -y
systemctl start bind
systemctl enable bind
systemctl stop firewalld
systemctl disable firewalld
设置dns为:172.25.254.108 ##/etc/resolve.conf
B端:hostnamectl set-hostname mailwestos.westos.com
IP为:172.25.254.108
设置dns为:172.25.254.108 ##/etc/resolve.conf
systemctl stop firewalld
systemctl disable firewalld
[root@mailqq yum.repos.d]# vim /etc/named.conf
##将11、12、17行注释掉
options {
11 // listen-on port 53 { 127.0.0.1; };
12 // listen-on-v6 port 53 { ::1; };
13 directory "/var/named";
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 // allow-query { localhost; };
。。。
}
[root@mailqq yum.repos.d]# vim /etc/named.rfc1912.zones
##添加下面两个模块
24 zone "westos.com" IN {
25 type master;
26 file "westos.com.zone";
27 allow-update { none; };
28 };
29
30 zone "qq.com" IN {
31 type master;
32 file "qq.com.zone";
33 allow-update { none; };
34 };
cd /var/named
cp -p named.localhost westos.com.zone
cp -p named.localhost qq.com.zone
vim westos.com.zone
vim westos.com.zone
先在mailqq.qq.com和mailwestos.westos.com进行第一次dig测试:
mailqq.qq.com:
[root@mailqq named]# dig -t mx qq.com ##测试qq.com的解析是否正确
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> -t mx qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29298
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;qq.com. IN MX
;; ANSWER SECTION:
qq.com. 86400 IN MX 1 172.25.254.108. ##解析正确
;; AUTHORITY SECTION:
qq.com. 86400 IN NS dns.qq.com.
;; ADDITIONAL SECTION:
dns.qq.com. 86400 IN A 172.25.254.108
;; Query time: 0 msec
;; SERVER: 172.25.254.108#53(172.25.254.108)
;; WHEN: Sat Aug 19 09:31:20 EDT 2017
;; MSG SIZE rcvd: 99
[root@mailqq named]# dig -t mx westos.com ##测试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: 40726
;; 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.208. ##解析正确
;; AUTHORITY SECTION:
westos.com. 86400 IN NS dns.westos.com.
;; ADDITIONAL SECTION:
dns.westos.com. 86400 IN A 172.25.254.108
;; Query time: 0 msec
;; SERVER: 172.25.254.108#53(172.25.254.108)
;; WHEN: Sat Aug 19 09:31:32 EDT 2017
;; MSG SIZE rcvd: 103
mailwestos.westos.com:
[root@mailwestos var]# dig -t mx qq.com
; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> -t mx qq.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1488
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;qq.com. IN MX
;; ANSWER SECTION:
qq.com. 86400 IN MX 1 172.25.254.108.
;; AUTHORITY SECTION:
qq.com. 86400 IN NS dns.qq.com.
;; ADDITIONAL SECTION:
dns.qq.com. 86400 IN A 172.25.254.108
;; Query time: 1 msec
;; SERVER: 172.25.254.108#53(172.25.254.108)
;; WHEN: Sat Aug 19 09:37:04 EDT 2017
;; MSG SIZE rcvd: 99
[root@mailwestos var]# 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: 37301
;; 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.208.
;; AUTHORITY SECTION:
westos.com. 86400 IN NS dns.westos.com.
;; ADDITIONAL SECTION:
dns.westos.com. 86400 IN A 172.25.254.108
;; Query time: 0 msec
;; SERVER: 172.25.254.108#53(172.25.254.108)
;; WHEN: Sat Aug 19 09:37:09 EDT 2017
;; MSG SIZE rcvd: 103
解析全部正确!!!
[root@mailqq named]# vim /etc/postfix/main.cf
[root@mailwestos var]# vim /etc/postfix/main.cf
两台主机做相同的操作:注释116行,去掉113行的注释
将74行和82行的信息分别填写完整
mailqq.qq.com
mailwestos.westos.com
两台主机做相同的操作:把98行的注释去掉
两台主机做相同的操作:修改163行
[root@mailqq named]# systemctl restart postfix.service
[root@mailwestos var]# systemctl restart postfix.service
测试:
从mailqq.qq.com端向mailwestos.westos.com端发送邮件:
从mailwestos.westos.com端向mailqq.qq.com端发送邮件:
测试成功,仅仅只是说明两台服务器端可以进行数据沟通~,只是第一步
下面我们要做的就是实现客户端的登录~
在这里,第三台主机,我选择真机作为真实的客户端:
安装客户端发送邮件的软件:
[root@foundation8 ~]# yum install telnet -y
至此,客户端发送的邮件在服务器上已经有了记录,然而,客户却不知道改在什么地方去查看文件,以及邮件的加密工作,都是我们接下来要讨论的。
在mailqq.qq.com上安装dovecot软件(Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。)
[root@mailqq yum.repos.d]# yum install dovecot.x86_64 -y
[root@mailqq yum.repos.d]# systemctl start dovecot
[root@mailqq yum.repos.d]# vim /etc/dovecot/dovecot.conf
##通过上图网络端口的查看,我们知道dovecot需要开启的具体的protocol,打开文件后,24行取消注释,48行设置所有人可以连接,49行将不允许查看的认证设置为允许
[root@mailqq yum.repos.d]# cd /etc/dovecot/conf.d/
[root@mailqq conf.d]# ls
10-auth.conf 20-imap.conf auth-dict.conf.ext
10-director.conf 20-lmtp.conf auth-ldap.conf.ext
10-logging.conf 20-pop3.conf auth-master.conf.ext
10-mail.conf 90-acl.conf auth-passwdfile.conf.ext
10-master.conf 90-plugin.conf auth-sql.conf.ext
10-ssl.conf 90-quota.conf auth-static.conf.ext
15-lda.conf auth-checkpassword.conf.ext auth-system.conf.ext
15-mailboxes.conf auth-deny.conf.ext auth-vpopmail.conf.ext
[root@mailqq conf.d]# vim 10-mail.conf
##编辑第30行
[root@mailqq conf.d]# systemctl restart dovecot.service
##mailwestos.westos.com同样也做关于dovecot这一系列的操作
[root@foundation8 ~]# yum install mutt -y
##真机相当于是客户端
mutt软件使用介绍如下:
在mailqq.qq.com和mailwestos.westos.com下做如下操作:
mkdir /etc/skel/mail/.imap/ -p
touch /etc/skel/mail/.imap/INBOX
在客户端:
[root@foundation8 ~]# mutt -f pop://student@172.25.254.208
回车即可查看
多封邮件,按上下键进行选择即可
至此,客户端只需要下载mutt便可以在任何一台主机上进行查看自己的邮件了。另外,给大家推荐一个功能更加强大,界面更加好看的软件:雷鸟(thunderbird)
thunderbird ##直接进入软件
##完善相应的信息,即可使用邮件软件了
点击Email编辑相应的信息
选择第二个进入下面的界面
发送邮件后,会有新邮件的提示
屏幕右下角会有图标提示
从服务器端和客户端都可以看到邮件的具体情况