一个基础的电子邮件系统必须能提供发件服务和收件服务,为此需要使用基于SMTP协议的Postfix服务程序提供发件服务功能,并使用基于POP3协议的Dovecot服务程序提供收件服务功能。这样一来,用户就可以使用Outlook Express或Foxmail等客户端服务程序正常收发电子邮件了。
一、部署基础的电子邮件系统
一般而言,用户的邮箱地址类似于“root@linux-yhy.com”,其格式为“用户名@主机地址(域名)”。如果您给我一串“root@192.168.88.188”的信息,我可能猜不到这是一个邮箱地址,也许会将它当作SSH协议的连接信息。因此,要想更好地检验电子邮件系统的配置效果,需要先部署BIND服务程序,为电子邮件服务器和客户端提供DNS域名解析服务。
第1步:配置服务器主机名称。
配置服务器主机名称,需要保证服务器主机名称与发信域名保持一致:
【vim /etc/hostname】
mail.linux-yhy.com
【hostname】
mail.linux-yhy.com
第2步:停用防火墙和临时关闭SELinux
【systemctl stop firewalld】
【setenforce 0】
第3步:配置域名解析。
为电子邮件系统提供域名解析。第13章已经讲解了bind-chroot服务程序的配置方法,因此这里只提供主配置文件、区域配置文件和域名数据文件的配置内容,其余配置步骤请大家自行完成:
【cat /etc/named.conf】
10 options {
11 listen-on port 53 { any; };
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 { any; };
18
………………省略部分输出信息………………
【cat /etc/named.rfc1912.zones】
zone "linux-yhy.com" IN {
type master;
file "linux-yhy.com.zone";
allow-update {none;};
};
【cat /var/named/linux-yhy.com.zone】
$TTL 1D | ||||
@ | IN SOA | linux-yhy.com. | root.linux-yhy.com. | ( |
0;serial | ||||
1D;refresh | ||||
1H;retry | ||||
1W;expire | ||||
3H;minimum | ||||
NS | ns.linux-yhy.com. | |||
ns | IN A | 192.168.88.188 | ||
@ | IN MX 10 | mail.linux-yhy.com. | ||
IN A | 192.168.88.188 |
【systemctl restart named】
【systemctl enable named】
修改好配置文件后记得重启bind服务程序,这样电子邮件系统所对应的服务器主机名称为mail.linux-yhy.com,而电子邮件域为@linux-yhy.com。把服务器的DNS地址修改成本地IP地址,如下图所示。
二、配置Postfix电子邮件服务器
第1步:安装Postfix服务。
【rpm -qa postfix】
【yum install postfix】
第2步:配置Postfix服务程序。
Postfix服务程序的主配置文件大约有679行左右的内容,但是需要重点掌握的只有7个参数,如表所示。大部分为注释内容。
参 数 | 作 用 | 大 概 位 置 |
myhostname | 邮件系统的主机名 | 第76行 |
mydomain | 邮件系统的域名 | 第83行 |
myorigin | 从本机发出电子邮件的域名 | 第99行 |
inet_interfaces | 监听的网卡接口 | 第116行 |
mydestination | 可接收电子邮件的主机名或域名 | 第164行 |
mynetworks | 设置可转发哪些主机的电子邮件 | 第264行 |
relay_domains | 设置可转发哪些网域的电子邮件 | 第296行 |
在Postfix服务程序的主配置文件中,总计需要修改5处内容。第1处修改是在第76行,定义一个名为myhostname的变量,用来保存服务器的主机名。请记住这个变量的名称,以下参数需要调用它,注意去掉前面的注释符号井号(#)。
【vim /etc/postfix/main.cf】
………………省略部分输出信息………………
75 #myhostname = host.domain.tld
76 myhostname = mail.linux-yhy.com
………………省略部分输出信息………………
第2处修改是在第83行,定义一个名为mydomain的变量,用来保存电子邮件的域名。大家也要记住这个变量名称,以下参数将调用它:
78 # The mydomain parameter specifies the local internet domain name.
79 # The default is to use $myhostname minus the first component.
80 # $mydomain is used as a default value for many other configuration
81 # parameters.
82 #
83 mydomain = linux-yhy.com
第3处修改是在第99行,调用前面的mydomain变量,以定义发出电子邮件的域。调用变量的好处是避免重复写入信息,并便于日后统一修改:
94 # For the sake of consistency between sender and recipient addresses,
95 # myorigin also specifies the default domain name that is appended
96 # to recipient addresses that have no @domain part.
97 #
98 #myorigin = $myhostname
99 myorigin = $mydomain
4处修改是在第116行,定义网卡监听地址。可以指定要使用服务器的哪些IP地址对外提供电子邮件服务;也可以写成all,这代表所有IP地址都能提供电子邮件服务:
113 #inet_interfaces = all
114 #inet_interfaces = $myhostname
115 #inet_interfaces = $myhostname, localhost
116 inet_interfaces = all
最后一处修改是在第164行,定义可接收电子邮件的主机名或域名列表。这里可以直接调用前面定义好的myhostname和mydomain变量(如果不想调用变量,也可以直接调用变量中的值):
162 # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
163 #
164 mydestination = $myhostname , $mydomain
165 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
166 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
第3步:创建电子邮件系统的登录账户。
Postfix可以调用本地系统的账户和密码,因此在本地系统创建常规账户即可。最后重启配置妥当的postfix服务程序,并将其添加到开机启动项中。
【useradd boss】
【echo "linux-yhy" | passwd --stdin boss】
【systemctl restart postfix】
【systemctl enable postfix】
三、配置Dovecot服务
第1步:安装Dovecot服务程序软件包。
首先配置yum软件仓库、挂载光盘镜像到指定目录,然后输入要安装的Dovecot软件包名称即可:
【yum install -y dovecot】
第2步:配置部署Dovecot服务程序。
在Dovecot服务程序的主配置文件中进行以下修改。首先是第24行,把Dovecot服务程序支持的协议修改为imap、pop3和lmtp。然后在这一行下面添加一行参数,允许用户使用明文进行密码验证。之所以这样操作,是因为Dovecot服务程序为了保证电子邮件系统的安全默认强制用户使用加密方式进行登录,而当前还没有加密系统,因此需要添加此参数,允许用户使用明文登录。
【vim /etc/dovecot/dovecot.conf】
………………省略部分输出信息………………
23 # Protocols we want to be serving.
24 protocols = imap pop3 lmtp
25 disable_plaintext_auth = no
………………省略部分输出信息………………
在主配置文件中的第48行设置允许登录的网段地址,也就是说可以在这里限制只有来自某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用电子邮件系统,就不用修改本参数:
44 # Space separated list of trusted network ranges. Connections from these
45 # IPs are allowed to override their IP addresses and ports (for logging and
46 # for authentication checks). disable_plaintext_auth is also ignored for
47 # these networks. Typically you'd specify your IMAP proxy servers here.
48 login_trusted_networks = 192.168.88.0/24
第3步:配置电子邮件格式与存储路径。
在Dovecot服务程序单独的子配置文件中定义一个路径,用于指定将收到的电子邮件存放到本地服务器的哪个位置。此路径默认已经被定义好,只需要将该配置文件中的第25行前面的井号(#)删除即可。
【vim /etc/dovecot/conf.d/10-mail.conf】
24 # mail_location = maildir:~/Maildir
25 mail_location = mbox:~/mail:INBOX=/var/mail/%u
26 # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n
………………省略部分输出信息………………
然后切换到配置Postfix服务程序时创建的boss账户,并在家目录中建立用于保存电子邮件的目录。记得要重启Dovecot服务程序并将其添加到开机启动项中。至此,对Dovecot服务程序的配置部署步骤全部完成。
【su - boss】
Last login: Sat Aug 15 16:15:58 CST 2017 on pts/1
【mkdir -p mail/.imap/INBOX】
【exit】
【systemctl restart dovecot】
【systemctl enable dovecot】
四、配置电子邮件客户端
下面将介绍如何使用Windows操作系统中自带的Outlook来进行测试(也可以使用其他电子邮件客户端来测试,如Foxmail)。请按照下图来设置电子邮件系统、DNS服务器和客户端主机的IP地址,以便能正常解析电子邮件域名。
第1步:在Windows 7操作系统中运行Outlook软件程序。
各位读者使用的Windows 7操作系统的版本不一定相同,笔者决定采用Outlook 2013版本进行实验。如果您想要与这里的实验环境保持一致,请先安装Outlook 2013,如图所示。
第2步:配置电子邮件账户。
在“Microsoft Outlook账户设置”界面中选择“是”单选按钮,然后单击“下一步”按钮,如图14-6所示。
第3步:填写电子邮件账户信息。
“您的姓名”文本框中可以为自定义的任意名字,“电子邮件地址”文本框中则需要输入服务器系统内的账户名加发件域,“密码”文本框中需要输入该账户的登录密码。在填写完毕之后,单击“下一步”按钮,如图所示。
第4步:进行电子邮件服务登录验证。
当前没有可用的SSL加密服务,因此在Dovecot服务程序的主配置文件中写入了一条参数,让客户可以使用明文登录到电子邮件服务。Outlook软件默认会通过SSL加密协议尝试登录电子邮件服务,所以在进行“正在搜索boss@linux-yhy.com设置”大约30~60秒后(见图14-8),系统会出现登录失败的报错信息。此时只需再次单击“下一步”按钮,Outlook软件即可通过非加密的方式验证登录,如图所示。
第5步:向其他信箱发送电子邮件
在成功登录Outlook软件后,即可尝试编写并发送电子邮件。只需在软件界面的空白处右击,在弹出的菜单中选择“新建电子邮件”命令,如图所示,然后在电子邮件界面填写收件人的邮箱地址及完整的电子邮件内容后单击“发送”按钮,如图14-11所示。
当使用Outlook软件成功发送电子邮件后,便可以在电子邮件服务器上使用mail命令查看到新电子邮件提醒了。如果想查看电子邮件的完整内容,只需输入收件人姓名前面的编号即可,ROOT用户查看电子邮件效果图如图所示。