如何在 Ubuntu 16.04 上将 Postfix 安装和配置为仅发送邮件的 SMTP 服务器

介绍

Postfix 是一个 mail transfer agent (MTA) 应用程序,用于发送和接收电子邮件. 在本教程中,我们将安装和配置 Postfix,以便它只能被本地应用程序用来发送电子邮件 - 即安装在同一个服务器上安装的 Postfix。

你为什么要这样做?

如果您已经使用第三方电子邮件提供商发送和接收电子邮件,您不需要运行自己的邮件服务器. 但是,如果您管理一个云服务器,您已经安装了需要发送电子邮件通知的应用程序,运行本地,仅发送的SMTP服务器是使用第三方电子邮件服务提供商或运行完整的SMTP服务器的一个很好的替代方案。

在本教程中,您将学习如何安装和配置 Postfix 作为仅发送的 SMTP 服务器。

<$>[注] :截至2022年6月22日,DigitalOcean正在阻止所有新帐户的SMTP。作为这一新政策的一部分,我们已经与SendGrid合作,以便我们的客户仍然可以轻松地发送电子邮件。

前提条件

要遵循本教程,您将需要:

  • 一个 Ubuntu 16.04 Droplet 设置与 Ubuntu 16.04 初始安装指南,包括创建一个 sudo 非根用户
  • 一个有效的域名,如 example.com,指向您的服务器。

请注意,您的服务器的主机名称应匹配该域或子域。您可以通过在命令提示中键入hostname来验证服务器的主机名称。

步骤 1 - 安装 Postfix

在此步骤中,您将学习如何安装Postfix. 安装Postfix和其他测试电子邮件所需的程序的最有效的方式是安装mailutils包。

首先,更新包数据库:

1sudo apt-get update

最后,安装 Postfix. 安装mailtuils将安装 Postfix 以及其他一些需要 Postfix 功能的程序。

1sudo apt install mailutils

接近安装过程的结束,你将被呈现一个窗口,看起来完全像下面图像中的一个. 默认选项是 Internet Site . 这是本教程的推荐选项,所以按TAB,然后ENTER

Select Internet Site from the menu, then press TAB to select <Ok>, then ENTER

之后,你会看到另一个窗口,就像下一个图像中的窗口一样。 系统邮件名称 应该与你在创建时分配给服务器的名称相同。

Enter your domain name, then press TAB to select <Ok>, ENTER

安装成功完成后,继续到第二步。

步骤 2 – 配置 Postfix

在此步骤中,您将阅读如何配置Postfix来处理请求,以便仅从运行该服务器的邮件发送,即从 localhost

要做到这一点,Postfix 必须配置为只在 _loopback 接口上聆听,即服务器使用的虚拟网络接口进行内部通信。

1sudo nano /etc/postfix/main.cf

打开文件时,向下滚动,直到您看到下一节。

1[label /etc/postfix/main.cf]
2. . .
3mailbox_size_limit = 0
4recipient_delimiter = +
5inet_interfaces = all
6. . .

inet_interfaces = all的行更改为inet_interfaces = loopback-only

1[label /etc/postfix/main.cf]
2. . .
3mailbox_size_limit = 0
4recipient_delimiter = +
5inet_interfaces = loopback-only
6. . .

您需要修改的另一个指令是mydestination,它用于指定通过local_transport邮件交付运输交付的域名列表。

1[secondary_label /etc/postfix/main.cf]
2. . .
3mydestination = $myhostname, example.com, localhost.com, , localhost
4. . .

该场景的 推荐的默认在下面的代码块中提供,所以修改你的以匹配:

1[secondary_label /etc/postfix/main.cf]
2. . .
3mydestination = $myhostname, localhost.$mydomain, $mydomain
4. . .

保存并关闭文件。

<$>[注] 如果您在单个服务器上托管多个域,其他域也可以通过mydestination指令转移到Postfix。

最后,重新启动 Postfix。

1sudo systemctl restart postfix

第3步:测试SMTP服务器

在此步骤中,您将测试 Postfix 是否可以使用邮件命令向外部电子邮件帐户发送电子邮件,该命令是第 1 步安装的mailutils包的一部分。

要发送测试电子邮件,键入:

1echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

當您進行自己的測試時,您可以使用身體和主題行文本,或將其變更為您喜歡。 但是,而不是「your_email_address」,請使用有效的電子郵件地址。 域名部分可能是「gmail.com」、「fastmail.com」、「yahoo.com」或您使用的任何其他電子郵件服務提供商。

现在检查您发送测试消息的电子邮件地址. 您应该在您的收件箱中看到该消息. 如果没有,请检查您的垃圾邮件文件夹。

请注意,在此配置中,您发送的测试电子邮件的 ** From** 字段中的地址将是 [email protected],其中 ** sammy** 是您的 Linux 用户名,域名部分是服务器的主机名。

步骤4:发送系统邮件

我们要设置的最后一件事是转发,所以你会收到系统上的电子邮件发送到您的个人、外部电子邮件地址。

要配置 Postfix 以便将系统生成的电子邮件发送到您的电子邮件地址,您需要编辑 /etc/aliases 文件。

1sudo nano /etc/aliases

Ubuntu 16.04 的默认安装文件的完整内容如下:

1[label /etc/aliases]
2# See man 5 aliases for format
3postmaster:    root

有了这个设置,系统生成的电子邮件会发送给 root 用户。你要做的就是编辑它,以便这些电子邮件被重定向到你的电子邮件地址。

1[secondary_label /etc/aliases]
2# See man 5 aliases for format
3postmaster:    root
4root:          your_email_address

your_email_address替换为您的个人电子邮件地址. 完成后,保存并关闭文件。 为了更改生效,运行以下命令:

1sudo newaliases

您现在可以通过将电子邮件发送到 root 帐户来测试它是否有效:

1echo "This is the body of the email" | mail -s "This is the subject line" root

您应该在您的电子邮件地址收到电子邮件,如果没有,请检查您的垃圾邮件文件夹。

结论

这就是使用Postfix设置一个只发送的电子邮件服务器所需的一切,您可能需要采取一些额外的步骤来保护您的域名免受垃圾邮件发送者影响。

如果你的使用案例是从你的服务器接收通知在一个单一的地址,电子邮件被标记为垃圾邮件是一个重大问题,因为你可以清单他们. 但是,如果你的使用案例是发送电子邮件给潜在的网站用户(如确认电子邮件的消息板登录),你应该肯定设置SPF记录和DKIM,所以你的服务器的电子邮件更有可能被认为是合法的。

如果配置正确,这使得很难发送垃圾邮件的地址,似乎来自您的域. 执行这些额外的配置步骤也将使通用邮件提供商更有可能看到电子邮件从您的服务器作为合法。

Published At
Categories with 技术
comments powered by Disqus