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

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


目录
相关文章
|
1天前
|
NoSQL Ubuntu 网络安全
在 Ubuntu 20.04 上安装和配置 Redis
在 Ubuntu 20.04 上安装和配置 Redis 的步骤如下:首先更新系统包,然后通过 `apt` 安装 Redis。安装后,启用并启动 Redis 服务,检查其运行状态。可选配置包括修改绑定 IP、端口等,并确保防火墙设置允许外部访问。最后,使用 `redis-cli` 测试 Redis 功能,如设置和获取键值对。
13 1
|
1天前
|
负载均衡 JavaScript Linux
做网站如何选择云服务器?(一)配置篇
选择服务器需考虑网站规模、技术需求和地理位置。个人博客适合基础配置,企业官网需4核CPU、8GB内存,电商平台则需更高配置并配备负载均衡。技术上,展示型网站用PHP+MySQL,互动社区需Node.js/Python环境,视频类网站要大带宽。地理位置影响服务器选择,国内用户选腾讯云/阿里云,海外用户选AWS等。主流服务器类型包括虚拟主机(入门级)、云服务器(推荐)和物理服务器(高端需求)。云服务商普遍提供免费试用,便于评估性能。
15 1
|
6天前
|
弹性计算
【已解决】Matomo本地SMTP配置可以发邮件,但部署到阿里云ECS就发不了邮件
在阿里云ECS上使用Matomo和PHPMailer发送邮件时遇到问题,邮件无法发出且接口调用Pending。经过排查,发现是ECS安全组未开放25/465端口,导致SMTP请求无法正常通信。解决方法为在安全组中配置并开放25/465端口,从而恢复邮件发送功能。
|
1天前
|
Ubuntu Linux Docker
如何在Ubuntu 20.04系统中安装Docker
安装 Docker 引擎的步骤如下:首先更新系统包索引 (`sudo apt update`),安装必要依赖包 (`apt-transport-https` 等),添加 Docker 官方 GPG 密钥及 APT 仓库。接着再次更新包索引并安装 Docker 引擎及相关工具 (`docker-ce` 等)。最后启动 Docker 服务并设置开机自启,通过 `docker --version` 和运行测试容器 (`sudo docker run hello-world`) 验证安装是否成功。
23 0
|
1天前
|
Windows
Windows系统云服务器配置多用户登录
本教程介绍了在Windows云服务器上配置远程桌面服务的详细步骤,包括安装桌面会话主机和远程桌面授权、允许多用户远程连接以及配置新用户并加入远程桌面用户组。通过添加角色和功能、设置组策略以及管理用户权限,实现多用户同时登录和远程访问。按照指引操作,可顺利完成服务器的远程访问配置,提升管理和使用效率。
13 0
|
5天前
|
弹性计算 运维 监控
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
本文介绍了如何通过阿里云获取ECS云服务器并进行操作系统配置与组件安装,以实现高效的资源管理和系统监控。阿里云凭借强大的基础设施和丰富的服务成为用户首选。文中详细描述了获取ECS、RAM授权、开通操作系统控制台及组件安装的步骤,并展示了如何利用控制台实时监控性能指标、诊断系统问题及优化性能。特别针对idle进程进行了深入分析,提出了优化建议。最后,建议定期进行系统健康检查,并希望阿里云能推出更友好的低成本套餐,满足学生等群体的需求。
62 17
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
|
5天前
|
弹性计算 Linux 数据安全/隐私保护
阿里云幻兽帕鲁联机服务器搭建全攻略,速来抄作业!2025新版教程
阿里云提供2025年最新幻兽帕鲁服务器申请购买及一键开服教程。4核16G配置支持8人,70元/月;8核32G配置支持20人,160元/月。选择配置、地域、操作系统后,点击【一键购买及部署】,约3分钟完成创建。本地安装STEAM客户端并登录,进入游戏选择多人模式,输入服务器IP和端口(8211),即可开始游戏。详细教程及更多问题解答请参考阿里云幻兽帕鲁游戏专区。
49 20
|
4天前
|
存储 人工智能 运维
阿里云操作系统控制台——解决服务器磁盘I/O故障
阿里云操作系统控制台——解决服务器磁盘I/O故障
32 12
|
8天前
|
弹性计算 数据可视化 Linux
阿里云操作系统控制台——ECS操作与性能优化
本文详细介绍如何操作阿里云服务器ECS,从开通到组件安装及内存诊断。首先,通过选择操作系统(如Alibaba Cloud Linux 3)并开通服务,创建RAM用户并授予权限。接着,安装所需组件,支持节点或集群安装。最后,利用内存全景诊断功能,输入实例ID或Pod名称发起诊断并解析结果。这一流程帮助用户高效搭建计算环境,提升技术能力,确保业务稳定运行,并提出优化建议以改善用户体验。
59 8
|
3天前
|
存储 运维 监控
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。