如何在 Ubuntu 18.04 上安装和配置 Postfix如何在 Ubuntu 18.04 上安装和配置 Postfix如何在 Ubuntu 18.04 上安装和配置 Postfix如何在 Ubuntu 18.04 上安装和配置 Postfix
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 18.04 上安装和配置 Postfix

介绍

Postfix 是一种流行的开源邮件传输代理 (MTA),可用于在 Linux 系统上路由和传递电子邮件。据估计,互联网上大约 25% 的公共邮件服务器运行 Postfix。

在本指南中,我们将教您如何在 Ubuntu 18.04 服务器上快速启动和运行 Postfix。

先决条件

为了遵循本指南,您应该有权访问具有 sudo 权限的非根用户。您可以按照我们的 Ubuntu 18.04 初始服务器设置指南创建必要的用户。

为了正确配置 Postfix,您需要一个指向您的 Ubuntu 18.04 服务器的完全限定域名。您可以按照本指南找到有关使用 DigitalOcean 设置域名的帮助。如果您计划接受邮件,则需要确保您也有一个指向您的邮件服务器的 MX 记录。

出于本教程的目的,我们假设您正在配置一个主机,其 FQDN 为 mail.example.com。

第 1 步 — 安装 Postfix

Postfix 包含在 Ubuntu 的默认存储库中,因此安装很简单。

首先,更新本地 apt 包缓存,然后安装软件。我们会将 DEBIAN_PRIORITY=low 环境变量传递到我们的安装命令中,以回答一些额外的提示:

  1. sudo apt update
  2. sudo DEBIAN_PRIORITY=low apt install postfix

使用以下信息为您的环境正确填写提示:

  • 邮件配置的一般类型?:为此,我们将选择 Internet 站点,因为它符合我们的基础架构需求。
  • 系统邮件名称:当仅给出地址的帐户部分时,这是用于构建有效电子邮件地址的基本域。例如,我们服务器的主机名是 mail.example.com,但我们可能希望将系统邮件名称设置为 example.com,以便给定用户名 user1,Postfix 将使用地址 user1@example.com。
  • Root 和 postmaster 邮件收件人:这是将邮件转发到 root@ 和 postmaster@ 的 Linux 帐户。为此使用您的主帐户。在我们的案例中,萨米。
  • 接受邮件的其他目的地:这定义了此 Postfix 实例将接受的邮件目的地。如果您需要添加此服务器将负责接收的任何其他域,请在此处添加这些域,否则,默认值应该可以正常工作。
  • 强制对邮件队列进行同步更新?:由于您可能正在使用日志文件系统,因此请在此处接受“否”。
  • 本地网络:这是您的邮件服务器配置为中继邮件的网络列表。默认值应该适用于大多数情况。如果您选择修改它,请确保在网络范围方面非常严格。
  • 邮箱大小限制:这可用于限制邮件的大小。将其设置为“0”可禁用任何大小限制。
  • 本地地址扩展字符:该字符可用于将地址的常规部分与扩展名(用于创建动态别名)分开。
  • 要使用的 Internet 协议:选择是否限制 Postfix 支持的 IP 版本。我们会根据我们的目的选择“全部”。

明确地说,这些是我们将在本指南中使用的设置:

  • 邮件配置的一般类型?:Internet 站点
  • 系统邮件名称:mail.example.com)
  • Root 和 postmaster 邮件收件人:sammy
  • 接受邮件的其他目的地:$myhostname、localhost.example.com、localhost
  • 强制对邮件队列进行同步更新?:否
  • 本地网络:127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • 邮箱大小限制:0
  • 本地地址扩展字符:+
  • 要使用的互联网协议:所有

如果您需要返回重新调整这些设置,您可以输入以下内容:

  1. sudo dpkg-reconfigure postfix

提示将预先填充您之前的回复。

当你完成后,我们现在可以做更多的配置来设置我们想要的系统。

第 2 步 — 调整 Postfix 配置

接下来,我们可以调整一些包没有提示我们的设置。

首先,我们可以设置邮箱。我们将使用 Maildir 格式,它将邮件分成单独的文件,然后根据用户操作在目录之间移动。另一种选择是 mbox 格式(我们不会在这里介绍),它将所有消息存储在一个文件中。

我们会将 home_mailbox 变量设置为 Maildir/,这将在用户的主目录中以该名称创建一个目录结构。 postconf 命令可用于查询或设置配置设置。通过键入以下内容配置 home_mailbox:

  1. sudo postconf -e 'home_mailbox= Maildir/'

接下来,我们可以设置 virtual_alias_maps 表的位置。此表将任意电子邮件帐户映射到 Linux 系统帐户。我们将在 /etc/postfix/virtual 中创建此表。同样,我们可以使用 postconf 命令:

  1. sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

第 3 步 — 将邮件地址映射到 Linux 帐户

接下来,我们可以设置虚拟地图文件。在文本编辑器中打开文件:

  1. sudo nano /etc/postfix/virtual

虚拟别名映射表使用一种非常简单的格式。在左侧,您可以列出您希望接受电子邮件的任何地址。之后,以空格分隔,输入您希望将邮件发送到的 Linux 用户。

例如,如果您想在 contact@example.com 和 admin@example.com 接收电子邮件,并希望将这些电子邮件发送给 sammy Linux 用户,你可以这样设置你的文件:

contact@example.com sammy
admin@example.com sammy

将所有地址映射到适当的服务器帐户后,保存并关闭文件。

我们可以通过键入以下内容来应用映射:

  1. sudo postmap /etc/postfix/virtual

重新启动 Postfix 进程以确保我们所有的更改都已应用:

  1. sudo systemctl restart postfix

第 4 步 — 调整防火墙

如果您正在运行 UFW 防火墙,如初始服务器设置指南中所配置的那样,我们将不得不允许 Postfix 例外。

您可以通过键入以下内容来允许连接到该服务:

  1. sudo ufw allow Postfix

Postfix 服务器组件已安装并准备就绪。接下来,我们将设置一个可以处理 Postfix 将要处理的邮件的客户端。

第 5 步 — 设置环境以匹配邮件位置

在我们安装客户端之前,我们应该确保我们的 MAIL 环境变量设置正确。客户端将检查此变量以确定在哪里查找用户的邮件。

为了无论您如何访问您的帐户(通过 ssh、su、su -、sudo 等)我们需要在几个不同的位置设置变量。我们将把它添加到 /etc/bash.bashrc 和 /etc/profile.d 中的一个文件,以确保每个用户都配置了这个。

要将变量添加到这些文件,请键入:

  1. echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh

要将变量读入当前会话,您可以获取 /etc/profile.d/mail.sh 文件:

  1. source /etc/profile.d/mail.sh

第 6 步 — 安装和配置邮件客户端

为了与正在发送的邮件进行交互,我们将安装 s-nail 包。这是 BSD xmail 客户端的一个变体,它功能丰富,可以正确处理 Maildir 格式,并且大部分是向后兼容的。 mail 的 GNU 版本有一些限制,例如无论源格式如何,始终将已读邮件保存为 mbox 格式。

要安装 s-nail 包,请键入:

  1. sudo apt install s-nail

我们应该调整一些设置。在编辑器中打开 /etc/s-nail.rc 文件:

  1. sudo nano /etc/s-nail.rc

在文件底部,添加以下选项:

. . .
set emptystart
set folder=Maildir
set record=+sent

这将允许客户端打开,即使收件箱是空的。它还会将 Maildir 目录设置为内部 folder 变量,然后使用它在其中创建一个 sent mbox 文件,用于存储已发送的邮件.

完成后保存并关闭文件。

第 7 步 — 初始化 Maildir 并测试客户端

现在,我们可以测试客户端了。

初始化目录结构

在我们的主目录中创建 Maildir 结构的最简单方法是给我们自己发送一封电子邮件。我们可以使用 s-nail 命令来做到这一点。因为 sent 文件只有在创建 Maildir 后才可用,所以我们应该禁止写入我们的初始电子邮件。我们可以通过传递 -Snorecord 选项来做到这一点。

通过将字符串传递给 s-nail 命令来发送电子邮件。调整命令以将您的 Linux 用户标记为收件人:

  1. echo 'init' | s-nail -s 'init' -Snorecord sammy

您可能得到以下响应:

Output
Can't canonicalize "/home/sammy/Maildir"

这是正常现象,可能只会在发送第一条消息时出现。我们可以通过查找 ~/Maildir 目录来检查以确保该目录已创建:

  1. ls -R ~/Maildir

您应该看到目录结构已经创建,并且新的消息文件位于 ~/Maildir/new 目录中:

Output
/home/sammy/Maildir/: cur new tmp /home/sammy/Maildir/cur: /home/sammy/Maildir/new: 1463177269.Vfd01I40e4dM691221.mail.example.com /home/sammy/Maildir/tmp:

看起来我们的邮件已经送达了。

与客户一起管理邮件

使用客户端查看邮件:

  1. s-nail

您应该看到您的新消息正在等待:

Output
s-nail version v14.8.6. Type ? for help. "/home/sammy/Maildir": 1 message 1 new >N 1 sammy@example.com Wed Dec 31 19:00 14/369 init

只需点击 ENTER 即可显示您的消息:

Output
[-- Message 1 -- 14 lines, 369 bytes --]: From sammy@example.com Wed Dec 31 19:00:00 1969 Date: Fri, 13 May 2016 18:07:49 -0400 To: sammy@example.com Subject: init Message-Id: <20160513220749.A278F228D9@mail.example.com> From: sammy@example.com init

您可以通过键入 h 返回到您的消息列表,然后输入 ENTER:

  1. h
Output
s-nail version v14.8.6. Type ? for help. "/home/sammy/Maildir": 1 message 1 new >R 1 sammy@example.com Wed Dec 31 19:00 14/369 init

由于此消息不是很有用,我们可以使用 d 删除它,然后使用 ENTER:

  1. d

通过键入 q 退出返回终端,然后输入 ENTER:

  1. q

用客户端发送邮件

您可以通过在文本编辑器中键入消息来测试发送邮件:

  1. nano ~/test_message

在里面,输入一些你想通过电子邮件发送的文本:

Hello,

This is a test.  Please confirm receipt!

使用 cat 命令,我们可以将消息通过管道传递给 s-nail 进程。默认情况下,这将以您的 Linux 用户身份发送消息。如果您想将该值修改为其他值,您可以使用 -r 标志调整 \From 字段:

  1. cat ~/test_message | s-nail -s 'Test email subject line' -r from_field_account user@email.com

上面的选项是:

  • -s:邮件的主题行
  • -r:对电子邮件的“发件人:”字段的可选更改。默认情况下,您登录的 Linux 用户将用于填充此字段。-r 选项允许您覆盖它。
  • user@email.com:将电子邮件发送到的帐户。将此更改为您有权访问的有效帐户。

您可以在 s-nail 客户端中查看已发送的消息。通过键入以下内容再次启动交互式客户端:

  1. s-nail

之后,通过键入以下内容查看您发送的消息:

  1. file +sent

您可以使用与接收邮件相同的命令来管理已发送邮件。

结论

您现在应该在 Ubuntu 18.04 服务器上配置了 Postfix。管理电子邮件服务器对于新手管理员来说可能是一项艰巨的任务,但使用此配置,您应该具备基本的 MTA 电子邮件功能以帮助您入门。

©2015-2025 艾丽卡 support@alaica.com