介绍
Postfix 是一个 MTA(邮件传输代理),一个用于发送和接收电子邮件的应用程序。 在本教程中,我们将安装和配置 Postfix,使其仅可用于本地应用程序发送电子邮件——即安装在与 Postfix 相同的服务器上的应用程序。
你为什么想这么做?
如果您已经在使用第三方电子邮件提供商来发送和接收电子邮件,那么您当然不需要运行自己的邮件服务器。 但是,如果您管理的云服务器上安装了需要发送电子邮件通知的应用程序,则运行本地的、仅发送的 SMTP 服务器是使用第三方电子邮件服务提供商或运行成熟的 SMTP 服务器的好选择.
发送电子邮件通知的应用程序示例是 OSSEC,它将向任何配置的电子邮件地址发送电子邮件警报(请参阅 如何在 Ubuntu 14.04 上安装和配置 OSSEC 安全通知)。 尽管 OSSEC 或任何其他同类应用程序可以使用第三方电子邮件提供商的 SMTP 服务器来发送电子邮件警报,但它也可以使用本地(仅发送)SMTP 服务器。
这就是您将在本教程中学习的内容:如何安装和配置 Postfix 作为只发送 SMTP 服务器。
注意: 如果您的用例是通过单个地址从您的服务器接收通知,则标记为垃圾邮件的电子邮件不是一个重要问题,因为您可以将它们列入白名单。
如果您的用例是向潜在的站点用户发送电子邮件,例如用于留言板注册的确认电子邮件,您绝对应该执行 步骤 5,这样您服务器的电子邮件更有可能被视为合法。 如果您的服务器电子邮件被标记为垃圾邮件仍然存在问题,您需要自行进行进一步的故障排除。
先决条件
请完成以下先决条件。
- Ubuntu 14.04 液滴
- 完成 初始设置 。 这意味着您应该拥有一个具有
sudo
权限的标准用户帐户 - 有一个有效的域名,比如 example.com,指向你的 Droplet
- 您的服务器的主机名应与此域或子域匹配。 您可以通过在命令提示符处键入
hostname
来验证服务器的主机名。 输出应与您在创建 Droplet 时为其指定的名称匹配,例如 example.com
如果所有先决条件都已满足,那么您现在就可以开始本教程的第一步了。
第 1 步 — 安装 Postfix
在此步骤中,您将学习如何安装 Postfix。 安装 Postfix 和测试电子邮件所需的其他程序的最有效方法是通过键入以下命令安装 mailutils
包:
sudo apt-get install mailutils
安装 mailtuils 还会安装 Postfix,以及 Postfix 运行所需的一些其他程序。 输入该命令后,您将看到类似以下内容的输出:
The following NEW packages will be installed: guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert 0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded. Need to get 5,481 kB of archives. After this operation, 26.9 MB of additional disk space will be used. Do you want to continue? [Y/n]
按 ENTER 安装它们。 在安装过程即将结束时,您将看到一个与下图中完全相同的窗口。 默认选项是 Internet 站点。 这是本教程的推荐选项,因此请按 TAB,然后按 Enter。
之后,您将获得另一个窗口,就像下一张图片中的窗口一样。 系统邮件名称 应该与您在创建 Droplet 时分配给它的名称相同。 如果它显示像 mars.example.com 这样的子域,请将其更改为 example.com。 完成后,按 TAB,然后按 Enter。
安装成功后,继续执行步骤 2。
第 2 步 — 配置 Postfix
在这一步中,您将了解如何配置 Postfix 以处理仅从运行它的服务器发送电子邮件的请求,即来自 localhost。 为此,需要将 Postfix 配置为仅侦听 环回接口 ,这是服务器用于内部通信的虚拟网络接口。 要进行更改,请使用 nano 编辑器打开主 Postfix 配置文件。
sudo nano /etc/postfix/main.cf
打开文件后,向下滚动,直到看到此代码块中显示的条目。
mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all
将读取 inet_interfaces = all
的行更改为 inet_interfaces = loopback-only
。 完成后,文件的同一部分现在应该显示为:
mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = loopback-only
您也可以使用 localhost
代替 loopback-only
,这样修改后的部分也可以显示为:
mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = localhost
完成文件编辑后,保存并关闭它(按 CTRL+X,然后按 Y,然后按 Enter)。 之后,通过键入以下内容重新启动 Postfix:
sudo service postfix restart
第 3 步 — 测试 SMTP 服务器是否可以发送电子邮件
在此步骤中,您将了解如何测试 Postfix 是否可以向任何外部电子邮件帐户发送电子邮件。 您将使用 mail
命令,它是在步骤 1 中安装的 mailutils
软件包的一部分。
要发送测试电子邮件,请键入:
echo "This is the body of the email" | mail -s "This is the subject line" user@example.com
在执行您自己的测试时,您可以按原样使用正文和主题行文本,或根据自己的喜好更改它们。 但是,使用有效的电子邮件地址代替 user@example.com,其中域部分可以是 gmail.com、fastmail.com、[ X147X]yahoo.com,或您使用的任何其他电子邮件服务提供商。
现在检查您发送测试消息的电子邮件地址。
您应该会在收件箱中看到该消息。 如果没有,请检查您的垃圾邮件文件夹。
注意:使用此配置,您发送的测试电子邮件的From字段中的地址将为sammy@example.com,其中sammy[ X159X] 是您的 Linux 用户名,域部分是服务器的主机名。 如果您更改用户名,From 地址也会更改。
第 4 步 — 转发系统邮件
我们要设置的最后一件事是转发,以便您可以通过您的个人外部电子邮件地址将电子邮件发送到系统上的 root。
要配置 Postfix 以便将系统生成的电子邮件发送到您的电子邮件地址,您需要编辑 /etc/aliases
文件。
sudo nano /etc/aliases
Ubuntu 14.04 的默认安装文件的完整内容显示在此代码块中:
# See man 5 aliases for format postmaster: root
使用该设置,系统生成的电子邮件将发送给 root 用户。 您要做的是对其进行编辑,以便将这些电子邮件重新路由到您的电子邮件地址。 为此,请编辑该文件,使其内容为:
# See man 5 aliases for format postmaster: root root: sammy@example.com
将 sammy@example.com 替换为您的个人电子邮件地址。 完成后,保存并关闭文件。 要使更改生效,请运行以下命令:
sudo newaliases
您现在可以通过使用以下命令向 root 帐户发送电子邮件来测试它是否有效:
echo "This is the body of the email" | mail -s "This is the subject line" root
您应该在您的电子邮件地址收到电子邮件。 如果没有,请检查您的垃圾邮件文件夹。
(可选)第 5 步 — 保护您的域免受垃圾邮件发送者的侵害
在此步骤中,您将获得文章链接,以帮助您保护您的域不被用于垃圾邮件。 这是一个可选但强烈推荐的步骤,因为如果配置正确,这使得发送带有似乎来自您的域的地址的垃圾邮件变得困难。
执行这些额外的配置步骤还将使普通邮件提供商更有可能将来自您服务器的电子邮件视为合法邮件,而不是将它们标记为垃圾邮件。
- 如何使用 SPF 记录来防止欺骗和提高电子邮件的可靠性
- 如何在 Debian Wheezy 上使用 Postfix 安装和配置 DKIM
- 此外,请确保您的服务器的 PTR 记录与邮件服务器在发送消息时使用的主机名匹配。 在 DigitalOcean,您可以通过在控制面板中更改您的 Droplet 的名称来更改您的 PTR 记录
尽管第二篇文章是为 Debian Wheezy 编写的,但相同的步骤也适用于 Ubuntu 14.04。