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

介绍

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

你为什么要这样做?

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

一个发送电子邮件通知的应用程序的例子是 OSSEC,该应用程序将发送电子邮件通知到任何配置的电子邮件地址(参见 [如何在 Ubuntu 14.04 上安装和配置 OSSEC 安全通知])。

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

注意: 如果您的使用案例是从您的服务器接收一个地址的通知,将电子邮件标记为垃圾邮件不是一个重大问题,因为您可以将它们列为白名单。

如果您的使用案例是向潜在的网站用户发送电子邮件,例如确认电子邮件,以便在邮件板上登录,那么您肯定应该做 步骤5 ,因此您的服务器的电子邮件更有可能被视为合法。

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

前提条件

请满足下列前提条件。

  • Ubuntu 14.04 Droplet
  • 通过 初始设置进行)。这意味着您应该有一个标准的用户帐户,具有 sudo 特权
  • 拥有有效的域名,如 example.com ,指向您的 Droplet
  • 您的服务器的主机名应匹配该域名或子域名。您可以通过在命令提示中键入 hostname 来验证服务器的主机名。

如果所有前提都满足了,你现在已经准备好这个教程的第一步。

步骤 1 - 安装 Postfix

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

1sudo apt-get install mailutils

安装邮件工具还会导致 Postfix 安装,以及一些其他程序需要 Postfix 才能工作. 输入该命令后,您将被呈现出一个读取类似的东西的输出:

1The following NEW packages will be installed:
2guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert
3
40 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
5Need to get 5,481 kB of archives.
6After this operation, 26.9 MB of additional disk space will be used.
7Do you want to continue? [Y/n]

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

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

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

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

安装成功完成后,继续到步骤2。

步骤 2 – 设置 Postfix

在此步骤中,您将阅读如何配置 Postfix 以处理请求,以便仅从运行服务器发送电子邮件,即从 localhost . 为了实现此,Postfix 需要配置为仅在 _loopback 界面上聆听,即服务器使用的虚拟网络界面进行内部通信。

1sudo nano /etc/postfix/main.cf

打开文件时,向下滚动,直到您看到本代码块中显示的条目。

1mailbox_size_limit = 0
2recipient_delimiter = +
3inet_interfaces = all

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

1mailbox_size_limit = 0
2recipient_delimiter = +
3inet_interfaces = loopback-only

您也可以使用localhost代替loopback-only,这样修改的部分也可以读到:

1mailbox_size_limit = 0
2recipient_delimiter = +
3inet_interfaces = localhost

当你完成编辑文件时,保存并关闭它(按CTRL+X,然后按Y,然后输入)。

1sudo service postfix restart

步骤 3 – 测试 SMTP 服务器是否可以发送电子邮件

在此步骤中,您将阅读如何测试 Postfix 是否可以向任何外部电子邮件帐户发送电子邮件。

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

1echo "This is the body of the email" | mail -s "This is the subject line" [email protected]

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

现在检查您发送测试消息的电子邮件地址。

你应该看到邮件在你的收件箱. 如果没有,检查你的垃圾邮件文件夹。

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

步骤 4 - 前进系统邮件

我们要设置的最后一件事是转发,这样您就可以在系统上以您的个人、外部电子邮件地址发送电子邮件到 root

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

1sudo nano /etc/aliases

Ubuntu 14.04 的默认安装文件的完整内容显示在以下代码块中:

1# See man 5 aliases for format
2postmaster:    root

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

1# See man 5 aliases for format
2postmaster:    root
3root:          [email protected]

用您的个人电子邮件地址更换 [email protected] . 完成后,保存并关闭文件。

1sudo newaliases

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

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

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

(可选)步骤5 — 保护您的域名免受垃圾邮件

在此步骤中,您将获得链接到文章,以帮助您保护您的域名免受垃圾邮件使用,这是一个可选但强烈建议的步骤,因为如果正确配置,这会使您很难发送垃圾邮件,该地址似乎来自您的域名。

执行这些额外的配置步骤也将使常规邮件提供商更有可能将您的服务器的电子邮件视为合法,而不是将其标记为垃圾邮件。

虽然第二篇文章是为 Debian Wheezy 编写的,但对于 Ubuntu 14.04 也同样适用。

Published At
Categories with 技术
Tagged with
comments powered by Disqus