返回博客

在 Ubuntu 20.04 上安装和配置 Postfix 作为仅发送 SMTP 服务器

在 Ubuntu 20.04 上安装和配置 Postfix 作为仅发送 SMTP 服务器

Postfix 是一款流行的免费开源软件,用作邮件传输代理(MTA)。Postfix 的工作是路由和投递电子邮件。除了经典用途外,Postfix 还可以配置为仅由本地应用程序发送电子邮件。

Postfix 的这种应用是在各种情况下部署的有用技巧。例如,它可用于定期发送电子邮件通知、与出站流量有限的第三方电子邮件服务提供商合作等。与任何功能完备的 SMTP 服务器相比,Postfix 是一个更轻量级的替代方案,同时保留了必要的功能。

在本教程中,了解如何在 Ubuntu 上安装和配置 Postfix 作为只发(send-only)SMTP 服务器。

前提条件

为了遵循本指南,您需要满足以下前提条件:

安装 Postfix

满足前提条件后,服务器就可以部署 Postfix 了。安装 Postfix 最简单的方法是安装 mailutils 软件包。它直接在 Ubuntu 官方仓库中提供。

首先,打开终端,并更新 APT 软件包数据库:

Package Update

然后,您可以安装 Postfix:

Install MailUtils

在安装过程中,将弹出以下配置窗口。默认选项是 Internet Site。要确认选择,请按 TAB 键将光标移动到下一部分。然后,按 Enter:

Mail Server Config

下一步将询问系统邮件名称(System mail name)。它将是创建时分配给服务器的名称。如脚本中所述,如果本地主机的邮件地址是“foo@example.org”,那么系统邮件名称将是 example.org:

Mail Name Config

请注意,以后也可以随时使用以下命令触发配置脚本:

配置 Postfix

在此步骤中,Postfix 将配置为仅发送和接收来自 localhost 的电子邮件。这需要 Postfix 监听 loopback 接口。这是服务器用于内部通信的虚拟网络接口。接下来,使用您选择的文本编辑器打开 Postfix 配置文件:

inet_interface 的值更改为 loopback-only:

Inet Interface

您必须更改的另一个指令是 mydestination。它定义了通过 local_transport 邮件投递传输进行投递的域名列表。默认值类似于:

Mydestination Old

将其值更改为以下内容:

Mydestination

如果您的域名实际上是一个子域名,并且您希望电子邮件看起来像是从主域名发送的,请在 Postfix 配置的末尾添加以下指令。它将从电子邮件地址中删除子域名:

Postfix Masquerade Domains

要使更改生效,请重启 Postfix:

restart_postfix

测试 SMTP 服务器

假设配置过程顺利,现在是测试它的时候了。为此,请检查 Postfix 是否可以使用 mail 命令向外部电子邮件帐户发送电子邮件。它是 mailutils 软件包的一部分:

邮件应该会送达指定的电子邮件地址。此时,所有发送的电子邮件都是未加密的。服务商通常会将此类邮件标记为垃圾邮件,因此请务必检查垃圾邮件箱以确认邮件是否送达。

如果 mail 命令报错,或者邮件在很长一段时间后仍未送达,请重新检查 Postfix 配置,并确保服务器名称和主机名设置正确。通过此配置,发送的电子邮件将显示为来自以下地址:

在这里,用户名将是运行 mail 命令的服务器用户的用户名。

转发系统邮件

我们已成功验证邮件服务器配置正确且运行正常。现在需要将其配置为转发 root 的邮件。所有发送到服务器的系统生成邮件都将被转发到外部电子邮件地址。对于邮件收件人, /etc/aliases 文件包含别名列表。使用您选择的文本编辑器打开它:

默认情况下,它看起来像这样:

Postfix Aliases

在文件末尾添加以下行:

Postfix Newaliases

它表示发送到 root 的邮件将被转发到一个电子邮件地址。要使更改生效,请运行以下命令。它将重建 mail 命令使用的别名数据库:

sudo newaliases

接下来,您需要测试更改是否成功。发送一封测试邮件到 root:

邮件应该会送达指定的电子邮件地址。不要忘记检查垃圾邮件文件夹,因为目前尚未配置加密。

启用 SMTP 加密

以未加密格式发送电子邮件是一项冒险的举动。为了确保安全,需要启用 SMTP 加密。为此,我们将为您的域名向 Let’s Encrypt 申请一个免费的 TLS 证书。

对于 Ubuntu,执行此任务的工具是 Certbot。值得庆幸的是,它直接包含在 Ubuntu 官方软件源中。使用以下命令安装 Certbot:

Postfix Install certbot

假设 服务器已配置 UFW,则需要打开端口 80 以便进行域名验证。运行以下命令来启用它:

ufw allow Postfix

现在,运行 Certbot 来生成证书。它会指示 Certbot 签发带有 4096 位 RSA 密钥的证书。验证将通过端口 80 (HTTP) 进行:

输出将类似于以下内容:

密钥将存储在以下目录中:

现在您的证书已生成,请在文本编辑器中打开 Postfix 配置文件:

找到以下部分 TLS 参数:

Postfix tls conf old

之后,更改以下指令的值 smtpd_tls_cert_filesmtpd_tls_key_file:

Postfix tls conf

接下来,保存并关闭文件。要使更改生效,请重启 Postfix:

最后,再次向目标电子邮件地址发送一封测试邮件:

该电子邮件现在应该像其他电子邮件一样正常显示。如果您检查电子邮件的技术信息,它将显示为已加密。

结语

恭喜!您已成功配置了由 Postfix 支持的只发电子邮件服务器。使用适当的加密密钥,电子邮件传输也是安全的。

有关优化电子邮件传输的更多方法,请查看此教程 使用 Google SMTP 服务器的最佳方法.

祝您使用愉快!

author

Pranay Kapgate

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。