如何使用空客户端配置设置 Postfix 邮件服务器(SMTP) - 第 9 部分
尽管如今有众多的在线通信方法,电子邮件仍然是一种将信息从世界一端传递到另一端或传递到我们隔壁办公室的人的实用方法。
下图说明了电子邮件从发件人开始传输直到邮件到达收件人的收件箱的过程:
为了实现这一点,幕后需要进行几件事。为了将电子邮件从客户端应用程序(例如Thunderbird、Outlook 或Gmail或Yahoo! Mail等网络邮件服务)传递到邮件服务器,再从那里传递到目标服务器,最后传递到预期收件人,每个服务器都必须配备SMTP(简单邮件传输协议)服务。
这就是为什么我们将在本文中解释如何在RHEL 7中设置SMTP服务器,其中本地用户(甚至发送给其他本地用户)发送的电子邮件会被转发到中央邮件服务器以便于访问。
在考试要求中,这被称为空客户端设置。
我们的测试环境将由一个原始邮件服务器和一个中央邮件服务器或中继主机组成。
Original Mail Server: (hostname: box1.mydomain.com / IP: 192.168.0.18) Central Mail Server: (hostname: mail.mydomain.com / IP: 192.168.0.20)
对于名称解析,我们将在两个框中使用众所周知的/etc/hosts文件:
192.168.0.18 box1.mydomain.com box1 192.168.0.20 mail.mydomain.com mail
安装 Postfix 和防火墙 / SELinux 注意事项
首先,我们需要(在两台服务器中):
1.安装Postfix:
# yum update && yum install postfix
2.启动服务并使其在下次重启时运行:
# systemctl start postfix # systemctl enable postfix
3.允许邮件流量通过防火墙:
# firewall-cmd --permanent --add-service=smtp # firewall-cmd --add-service=smtp
4.在box1.mydomain.com上配置Postfix。
Postfix 的主配置文件位于/etc/postfix/main.cf。此文件本身是一个很好的文档来源,因为其中包含的注释解释了程序设置的用途。
为了简洁起见,我们只显示需要编辑的行(是的,您需要在原始服务器中将mydestination留空;否则电子邮件将存储在本地,而不是存储在中央邮件服务器中,而这正是我们真正想要的):
myhostname = box1.mydomain.com mydomain = mydomain.com myorigin = $mydomain inet_interfaces = loopback-only mydestination = relayhost = 192.168.0.20
5.在mail.mydomain.com上配置 Postfix 。
myhostname = mail.mydomain.com mydomain = mydomain.com myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks = 192.168.0.0/24, 127.0.0.0/8
如果尚未完成,则将相关的SELinux布尔值永久设置为 true:
# setsebool -P allow_postfix_local_write_mail_spool on
上述SELinux布尔值将允许 Postfix 写入中央服务器中的邮件池。
5.重新启动两台服务器上的服务以使更改生效:
# systemctl restart postfix
如果Postfix无法正确启动,可以使用以下命令进行故障排除。
# systemctl –l status postfix # journalctl –xn # postconf –n
测试 Postfix 邮件服务器
要测试邮件服务器,您可以使用任何邮件用户代理(通常简称为MUA),例如mail 或 mutt。
由于我个人很喜欢mutt ,因此我将在box1中使用它,使用现有文件(mailbody.txt)作为邮件正文向用户示例发送电子邮件:
# mutt -s "Part 9-RHCE series" example@mydomain.com < mailbody.txt
现在转到中央邮件服务器(mail.mydomain.com ),以用户example身份登录,并检查是否收到了电子邮件:
# su – example # mail
如果未收到电子邮件,请检查 root 的邮件池中是否有警告或错误通知。您可能还需要使用nmap 命令确保SMTP服务在两台服务器上都运行,并且中央邮件服务器中的端口25已打开:
# nmap -PN 192.168.0.20
概括
像本文中所示的那样设置邮件服务器和中继主机是每个系统管理员必须具备的基本技能,并且是理解和安装更复杂场景的基础,例如托管多个(甚至数百或数千个)电子邮件帐户的实时域的邮件服务器。
(请注意,这种设置需要 DNS 服务器,这超出了本指南的讨论范围),但您可以使用以下文章来设置DNS 服务器:
最后,我强烈建议您熟悉 Postfix 的配置文件 ( main.cf ) 和程序的手册页。如有疑问,请随时使用下面的表格或使用我们的论坛Linuxsay.com给我们留言,您将在那里获得来自世界各地的 Linux 专家的几乎即时帮助。