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

本文涉及的产品
.cn 域名,1个 12个月
简介: 如何在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。

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


目录
相关文章
|
7天前
|
存储 分布式计算 固态存储
阿里云2核16G、4核32G、8核64G配置云服务器租用收费标准与活动价格参考
2核16G、8核64G、4核32G配置的云服务器处理器与内存比为1:8,这种配比的云服务器一般适用于数据分析与挖掘,Hadoop、Spark集群和数据库,缓存等内存密集型场景,因此,多为企业级用户选择。目前2核16G配置按量收费最低收费标准为0.54元/小时,按月租用标准收费标准为260.44元/1个月。4核32G配置的阿里云服务器按量收费标准最低为1.08元/小时,按月租用标准收费标准为520.88元/1个月。8核64G配置的阿里云服务器按量收费标准最低为2.17元/小时,按月租用标准收费标准为1041.77元/1个月。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
5天前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
22 3
|
8天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
22 2
|
8天前
|
存储 缓存 固态存储
阿里云服务器2核8G、4核16G、8核32G配置租用收费标准与活动价格参考
2核8G、8核32G、4核16G配置的云服务器处理器与内存比为1:4,这种配比的云服务器一般适用于中小型数据库系统、缓存、搜索集群和企业办公类应用等通用型场景,因此,多为企业级用户选择。本文介绍这些配置的最新租用收费标准与活动价格情况,以供参考。
|
9天前
|
存储 编解码 安全
阿里云服务器2核4G、4核8G、8核16G配置租用收费标准与活动价格参考
通常情况下,个人和一般企业用户在购买阿里云服务器时比较喜欢购买2核4G、4核8G、8核16G等配置,这些配置既能满足各种图文类中小型网站和应用又能满足企业网站应用、批量计算、中小型数据库系统等场景,2核4G配置适合新手入门或初创企业,4核8G与8核16G兼具成本与性能优势,适合通用场景,本文介绍这些配置的最新购买价格,包含原价收费标准和最新活动价格。
|
弹性计算 Shell Windows
阿里云学生专享ecs服务器体验及个人配置
阿里云学生优惠专享的云服务器个人使用体验
阿里云学生专享ecs服务器体验及个人配置
|
5天前
|
机器学习/深度学习 人工智能 弹性计算
什么是阿里云GPU云服务器?GPU服务器优势、使用和租赁费用整理
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等多种场景。作为亚太领先的云服务提供商,阿里云的GPU云服务器具备灵活的资源配置、高安全性和易用性,支持多种计费模式,帮助企业高效应对计算密集型任务。
|
5天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云GPU服务器全解析_GPU价格收费标准_GPU优势和使用说明
阿里云GPU云服务器提供强大的GPU算力,适用于深度学习、科学计算、图形可视化和视频处理等场景。作为亚太领先的云服务商,阿里云GPU云服务器具备高灵活性、易用性、容灾备份、安全性和成本效益,支持多种实例规格,满足不同业务需求。
|
13天前
|
弹性计算
阿里云2核16G服务器多少钱一年?亲测价格查询1个月和1小时收费标准
阿里云2核16G服务器提供多种ECS实例规格,内存型r8i实例1年6折优惠价为1901元,按月收费334.19元,按小时收费0.696221元。更多规格及详细报价请访问阿里云ECS页面。
51 9
|
10天前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。