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

介绍

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

你为什么要这样做?

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

在本教程中,您将安装和配置 Postfix 作为 Debian 9 上仅发送的 SMTP 服务器。

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

前提条件

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

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

步骤 1 - 安装 Postfix

在此步骤中,您将学习如何安装 Postfix. 您将需要两个包:‘mailutils’,其中包括 Postfix 运作所需的程序,以及‘postfix’本身。

首先,更新包数据库:

1sudo apt update

接下来,安装mailtuils:

1sudo apt install mailutils

最后,安装postfix:

1sudo apt install postfix

接近安装过程的结束,你将被呈现一个窗口,看起来像下面图像中的一个. 默认选项是 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

您现在已经安装了 Postfix 并准备好修改其配置设置。

步骤 2 – 配置 Postfix

在此步骤中,您将配置 Postfix 以处理请求,仅从运行服务器发送电子邮件,即从本地主机

要做到这一点,Postfix 必须配置为只在 _loopback 接口上聆听,即服务器使用的虚拟网络接口进行内部通信. 要进行更改,请使用 nano你最喜欢的文本编辑器打开主要的 Postfix 配置文件:

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. . .

此指令的 [推荐的默认值]( http://www.postfix.org/postconf.5.html# mydestination)是在下面的代码块中提供的,所以修改你的以匹配:

1[secondary_label /etc/postfix/main.cf]
2. . .
3mydestination = $myhostname, localhost.$your_domain, $your_domain
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

Debian 9 的默认安装文件的完整内容如下:

 1[label /etc/aliases]
 2mailer-daemon: postmaster
 3postmaster: root
 4nobody: root
 5hostmaster: root
 6usenet: root
 7news: root
 8webmaster: root
 9www: root
10ftp: root
11abuse: root
12noc: root
13security: root

postmaster: root设置确保系统生成的电子邮件发送给 root 用户. 您想要编辑这些设置,以便这些电子邮件被重定向到您的电子邮件地址。

1[label /etc/aliases]
2mailer-daemon: postmaster
3postmaster:    root
4root:          your_email_address
5. . .

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