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

简介: 如何在Ubuntu 16.04上安装和配置Postfix作为仅发送的SMTP服务器

简介

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

为什么要这样做呢?

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

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

先决条件

要完成本教程,你需要:

  • 一个已经按照 Ubuntu 16.04 初始设置指南设置好的 Ubuntu 16.04 Droplet,包括创建一个 sudo 非根用户
  • 一个有效的域名,比如 example.com,指向你的服务器。你可以按照这个主机名教程来设置。

请注意,你服务器的主机名应该与这个域名或子域名匹配。你可以通过在命令提示符下输入 hostname 来验证服务器的主机名。输出应该与你在创建 Droplet 时给出的名称匹配。

步骤 1 — 安装 Postfix

在这一步中,你将学习如何安装 Postfix。安装 Postfix 和其他用于测试电子邮件的程序的最有效方法是安装 mailutils 软件包。

首先,更新软件包数据库:

sudo apt-get update

最后,安装 Postfix。安装 mailtuils 将同时安装 Postfix 以及一些其他 Postfix 运行所需的程序。

sudo apt install mailutils

在安装过程的最后,你将看到一个窗口,看起来与下面的图片一模一样。默认选项是 Internet Site。这是本教程推荐的选项,所以按 TAB 键,然后按 ENTER 键。

!从菜单中选择 Internet Site,然后按 TAB 键选择 ,然后按 ENTER 键

之后,你将看到另一个窗口,看起来与下面的图片一样。System mail name 应该与你在创建服务器时分配的名称相同。如果显示的是一个子域名,比如 subdomain.example.com,将其改为 example.com。完成后,按 TAB 键,然后按 ENTER 键。

!输入你的域名,然后按 TAB 键选择 ,然后按 ENTER 键

安装成功后,继续进行第二步。

步骤 2 — 配置 Postfix

在这一步中,你将学习如何配置 Postfix,以便它只能处理来自运行它的服务器的发送邮件请求,也就是来自 localhost

为了实现这一点,Postfix 需要被配置为只监听 loopback 接口,即服务器用于内部通信的虚拟网络接口。要进行更改,使用 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
. . .

另一个你需要修改的指令是 mydestination,它用于指定通过 local_transport 邮件传递传输所传递的域的列表。默认情况下,值类似于以下内容:

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

对于这种情况,推荐的默认值如下所示,所以修改你的值以匹配:

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

保存并关闭文件。

最后,重新启动 Postfix。

sudo systemctl restart postfix

步骤 3 — 测试 SMTP 服务器

在这一步中,你将测试 Postfix 是否能够使用 mail 命令向外部电子邮件账户发送邮件,mail 命令是 Step 1 中安装的 mailutils 软件包的一部分。

要发送一个测试邮件,输入:

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

在进行你自己的测试时,你可以使用原样的正文和主题行文本,也可以根据自己的喜好进行更改。但是,在 your_email_address 的位置,使用一个有效的电子邮件地址。域部分可以是 gmail.comfastmail.comyahoo.com 或者你使用的任何其他电子邮件服务提供商。

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

请注意,使用这个配置,你发送的测试邮件中 From 字段的地址将是 sammy@example.com,其中 sammy 是你的 Linux 用户名,域部分是服务器的主机名。如果你更改了你的用户名,From 地址也会改变。

步骤 4 —— 转发系统邮件

我们要设置的最后一件事是转发系统发送给 root 用户的邮件到你的个人外部邮箱地址。

要配置 Postfix,使系统生成的邮件发送到你的邮箱地址,你需要编辑 /etc/aliases 文件。

sudo nano /etc/aliases

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

# 查看 man 5 aliases 了解格式
postmaster:    root

通过这个设置,系统生成的邮件会发送到 root 用户。你需要编辑文件,将这些邮件重定向到你的邮箱地址。为了实现这一点,编辑文件使其如下所示:

[secondary_label /etc/aliases]
# 查看 man 5 aliases 了解格式
postmaster:    root
root:          你的邮箱地址

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

sudo newaliases

你现在可以通过以下命令测试是否生效,发送邮件到 root 用户:

echo "这是邮件的正文" | mail -s "这是主题行" root

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

结论

这就是使用 Postfix 设置发送邮件服务器所需的全部步骤。你可能需要采取一些额外步骤来保护你的域名免受垃圾邮件的影响。

如果你的使用场景是在单个地址接收服务器通知,邮件被标记为垃圾邮件是一个主要问题,因为你可以将其列入白名单。然而,如果你的使用场景是向潜在的站点用户发送邮件(例如消息板注册的确认邮件),你应该绝对设置 SPF 记录和 DKIM,以便你的服务器邮件更有可能被视为合法。

  • 如何使用 SPF 记录防止欺骗和提高电子邮件可靠性
  • 如何在 Debian Wheezy 上安装和配置 DKIM 与 Postfix 尽管该文章是针对 Debian Wheezy 编写的,但相同的步骤适用于 Ubuntu 16.04。

如果配置正确,这将使使用你域名伪造发送垃圾邮件变得困难。进行这些额外的配置步骤还将使常见的邮件提供商更有可能将来自你服务器的邮件视为合法。


目录
相关文章
|
4月前
|
弹性计算 ice
阿里云4核8G云服务器配置价格:热门ECS实例及CPU处理器型号说明
阿里云2025年4核8G服务器配置价格汇总,涵盖经济型e实例、计算型c9i等热门ECS实例,CPU含Intel Xeon及AMD EPYC系列,月费159元起,年付低至1578元,按小时计费0.45元起,实际购买享折扣优惠。
1135 1
|
4月前
|
Shell Linux 网络安全
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
755 3
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
|
4月前
|
弹性计算 定位技术 数据中心
阿里云服务器配置选择方法:付费类型、地域及CPU内存配置全解析
阿里云服务器怎么选?2025最新指南:就近选择地域,降低延迟;长期使用选包年包月,短期灵活选按量付费;企业选2核4G5M仅199元/年,个人选2核2G3M低至99元/年,高性价比爆款推荐,轻松上云。
370 11
|
4月前
|
存储 弹性计算 网络协议
超详细的阿里云服务器购买流程,ECS自定义购买配置教程
本文详细图解阿里云ECS服务器自定义购买全流程,涵盖付费模式、地域选择、网络配置、实例规格、镜像、存储、安全组及登录设置等核心步骤,助您轻松掌握专业级云服务器搭建方法。
|
4月前
|
存储 弹性计算 监控
阿里云渠道商:如何挑选阿里云服务器配置?
本文详解通用型、计算型、内存型等实例适用场景,结合性能评估与成本优化策略,助力用户按需选择。以日均1万访问企业网站为例,2核4G+3M带宽月费约200元,性价比高。合理配置更省钱。
|
4月前
|
弹性计算
阿里云ECS云服务器8核16G配置收费价格,多种ECS实例CPU及费用清单
阿里云8核16G云服务器价格因实例类型而异。计算型c9i约743元/月,一年6450元(7折);通用算力型u1仅673元/月,一年4225元(5.1折)。实际价格享时长折扣,详情见ECS官网。
|
5月前
|
Ubuntu 安全 应用服务中间件
详细指南:配置Nginx服务器在Ubuntu平台上
以上步骤涵盖了基本流程:从软件包管理器获取 Ngnix, 设置系统服务, 调整UFW规则, 创建并激活服务器块(也称作虚拟主机), 并进行了初步优化与加固措施。这些操作都是建立在命令行界面上,并假设用户具有必要权限(通常是root用户)来执行这些命令。每个操作都有其特定原因:例如,设置开机启动确保了即使重启后也能自动运行 Ngnix;而编辑server block则定义了如何处理进入特定域名请求等等。
350 18
|
5月前
|
Ubuntu 安全 关系型数据库
安装MariaDB服务器流程介绍在Ubuntu 22.04系统上
至此, 您已经在 Ubuntu 22.04 系统上成功地完成了 MariadB 的标准部署流程,并且对其进行基础但重要地初步配置加固工作。通过以上简洁明快且实用性强大地操作流程, 您现在拥有一个待定制与使用地强大 SQL 数据库管理系统。
380 18