如何在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。

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


目录
相关文章
|
23天前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
108 12
|
1月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器ECS提供多种实例规格,包括高主频计算型hfc8i、计算型c8i、通用算力型u1、经济型e等。各规格配备不同CPU型号与主频性能,适用于机器学习、数据分析、游戏服务器、Web前端等多种场景。用户可根据需求选择Intel或AMD处理器,如第四代Xeon或AMD EPYC系列,满足高性能计算及企业级应用要求。更多详情参见阿里云官方文档。
141 1
|
1月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器ECS提供多种实例规格,如高主频计算型hfc8i、计算型c8i、通用算力型u1、经济型e等。各规格基于不同CPU型号与主频性能设计,适用于机器学习、数据分析、游戏服务器、网站应用等多种场景。用户可根据实际需求选择适合的配置,满足高性能计算或经济性要求。更多详情及参数说明可参考官方文档。
294 4
|
1月前
|
弹性计算 数据挖掘 测试技术
阿里云服务器2核8G、4核16G、8核32G配置热门实例性能、适用场景对于与选择参考
2025年,阿里云针对2核8G、4核16G、8核32G这三种主流配置,推出了一系列极具吸引力的活动,为用户提供了多样化的选择。目前,2核8G配置的云服务器活动价格为522.79元/年起,4核16G配置的云服务器活动价格为2149.92元/年起,而8核32G配置的云服务器活动价格则为4249.44元/年起。这些价格涵盖了经济型e、通用算力型u1、通用型g8i、通用型g7和通用型g8y等不同实例规格,为用户提供了多样化的选择。本文将对这些配置热门实例规格的实例性能、适用场景和活动价格做个对比,以供选择和参考。
|
2月前
|
存储 弹性计算 应用服务中间件
阿里云服务器2核4G、4核8G、8核16G配置主要适用场景及最新活动价格参考
云服务器现在已成为企业和个人开展业务、搭建应用不可或缺的基础设施,在众多配置中,2核4G、4核8G和8核16G是广大用户选择较多的配置,目前阿里云服务器通用算力型u1实例2核4G5M带宽企业用户购买的价格只要199元1年,且续费价格不变,4核8G目前的活动价格为955.58元1年起,8核16G配置选择计算型c8y实例的活动价格为3815.03元1年起。本文将为大家解析2025年截止目前阿里云服务器中2核4G、4核8G、8核16G配置的活动报价,帮助用户了解最新价格信息,以及不同配置的主要适用场景,以供参考和选择。
|
2月前
|
存储 弹性计算 安全
阿里云服务器38元、99元、199元配置、适用场景区别及选择参考
目前,阿里云有多款特价云服务器产品,轻量云服务器2核2G200M峰值带宽38元一年,经济型e实例云服务器2核2G3M带宽99元1年、4核16G10M云服务器70元1个月、210元3个月,8核32G10M带宽160元1个月、480元3个月,通用算力型u1实例2核4G5M带宽199元一年、4核8G云服务器955元一年。本文将详细介绍阿里云的三款特价云服务器产品:38元的轻量应用服务器、99元的云服务器ECS经济型e实例,以及199元的云服务器ECS u1实例,帮助用户更好地了解这些产品的规格、配置、适用场景及购买资格和注意事项。
|
2月前
|
Kubernetes Ubuntu Linux
阿里云服务器使用centos还是ubuntu?
在选择阿里云服务器操作系统时,CentOS和Ubuntu各有优势。CentOS以企业级稳定性著称,适合数据库、ERP等长期稳定需求;而Ubuntu开发者友好,支持最新硬件与功能,更适合开发/测试环境及云计算场景。两者在阿里云上均有官方镜像支持,性能差异可忽略。无特殊需求时推荐Ubuntu 22.04 LTS,若需RHEL生态则选AlmaLinux。根据实际需求、团队技术栈及场景灵活决策,阿里云还支持更换系统盘降低试错成本。
|
2月前
|
存储 弹性计算 人工智能
阿里云服务器ECS实例规格选型指南:根据使用场景选择合适的配置
随着云计算的快速发展,阿里云提供了丰富多样的云服务器ECS实例规格,满足不同用户需求。然而,面对众多选项,新手往往难以抉择。本文详细解析八大业务场景,包括新手入门、网站业务、数据库、大数据、游戏、视频、AI机器学习及高性能计算等,帮助用户精准选择合适的实例规格。通过了解各实例的硬件配置与软件优化特点,用户可实现资源高效利用与成本合理控制,推动业务发展。更多详情与性能参考可访问阿里云官方文档。
150 17
|
2月前
|
存储 安全 关系型数据库
阿里云服务器选购配置方案云产品搭配指南参考
对于部分新手用户来说,面对阿里云众多的服务器配置和云产品,如何做出合适的选择,成为了大家比较关注的问题。本文将深入探讨阿里云服务器选择的相关知识,包括配置方案、云服务器活动以及云产品搭配策略,帮助您在众多选项中找到最适合自己的解决方案。
|
3月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
359 12