网站搜索

如何使用空客户端配置设置 Postfix 邮件服务器 (SMTP) - 第 9 部分


尽管当今有许多可用的在线通信方法,电子邮件仍然是一种将消息从世界的一端传递到另一端或传递给坐在我们隔壁办公室的人的实用方式。

下图展示了从发件人开始直到邮件到达收件人收件箱的电子邮件传输过程:

为了实现这一点,幕后发生了几件事。为了将电子邮件从客户端应用程序(例如 Thunderbird、Outlook 或 Web 邮件服务,例如 GmailYahoo! 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" [email  < mailbody.txt

现在转到中央邮件服务器(mail.mydomain.com),以用户howtoing登录,并检查是否收到电子邮件:


su – tecmint
mail

如果未收到电子邮件,请检查 root 的邮件后台是否有警告或错误通知。您可能还想确保两台服务器上都运行 SMTP 服务,并且使用 nmap 命令在中央邮件服务器中打开端口 25


nmap -PN 192.168.0.20

概括

如本文所示,设置邮件服务器中继主机是每个系统管理员都必须具备的基本技能,也是理解和安装更复杂的系统的基础。例如,邮件服务器托管多个(甚至数百或数千)电子邮件帐户的实时域。

(请注意,这种设置需要 DNS 服务器,这超出了本指南的范围),但您可以使用以下文章来设置 DNS 服务器

  1. 在 CentOS/RHEL 07 中设置仅缓存 DNS 服务器

最后,我强烈建议您熟悉 Postfix 的配置文件 (main.cf) 和程序的手册页。如果有疑问,请随时使用下面的表格或使用我们的论坛 Linuxsay.com 给我们留言,在这里您几乎可以立即从世界各地的 Linux 专家那里获得帮助。