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

news/2024/7/8 4:02:12 标签: 服务器, ubuntu, linux

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

介绍

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

为什么要这样做?

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

一个发送电子邮件通知的应用程序的示例是 OSSEC,它将向任何配置的电子邮件地址发送电子邮件警报(请参阅《在 Ubuntu 14.04 上安装和配置 OSSEC 安全通知》)。尽管 OSSEC 或类似的任何其他应用程序可以使用第三方电子邮件提供商的 SMTP 服务器发送电子邮件警报,但它也可以使用本地(仅发送)SMTP 服务器

这就是您将在本教程中学习如何做的内容:如何安装和配置 Postfix 作为仅发送的 SMTP 服务器

注意: 如果您的用例是从服务器接收单个地址的通知,那么将电子邮件标记为垃圾邮件并不是一个重要的问题,因为您可以将其列入白名单。

如果您的用例是向潜在的站点用户发送电子邮件,比如消息板注册的确认电子邮件,那么您绝对应该执行步骤 5,这样您服务器的电子邮件更有可能被视为合法。如果您仍然遇到服务器的电子邮件被标记为垃圾邮件的问题,您将需要自行进行进一步的故障排除。

先决条件

请完成以下先决条件。

  • Ubuntu 14.04 Droplet
  • 完成初始设置。这意味着您应该拥有一个带有 sudo 权限的标准用户帐户
  • 拥有一个有效的域名,比如 example.com,指向您的 Droplet
  • 服务器的主机名应与此域名或子域名匹配。您可以通过在命令提示符下输入 hostname 来验证服务器的主机名。输出应与您在创建 Droplet 时给出的名称相匹配,比如 example.com

如果所有先决条件都已满足,那么您现在已经准备好进行本教程的第一步了。

步骤 1 — 安装 Postfix

在这一步中,您将学习如何安装 Postfix。安装 Postfix 和其他用于测试电子邮件的程序的最有效方法是通过输入以下命令来安装 mailutils 软件包:

sudo apt-get install mailutils

安装 mailutils 也会导致安装 Postfix,以及一些其他 Postfix 运行所需的程序。在输入该命令后,您将看到类似以下输出:

The following NEW packages will be installed:
guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert

0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
Need to get 5,481 kB of archives.
After this operation, 26.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]

按 ENTER 键进行安装。在安装过程的最后,您将看到一个窗口,其外观与下面的图像完全相同。默认选项是 Internet Site。这是本教程推荐的选项,因此按 TAB 键,然后按 ENTER 键。

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

之后,您将看到另一个窗口,其外观与下面的图像相同。System mail name 应与您在创建 Droplet 时分配给它的名称相同。如果显示的是子域名,比如 mars.example.com,请将其更改为 example.com。完成后,按 TAB 键,然后按 ENTER 键。

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

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

步骤 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

您也可以使用 localhost 替换 loopback-only,这样修改后的部分也可以如下所示:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost

编辑文件后,保存并关闭它(按下 CTRL+X,然后按 Y,然后按 ENTER)。之后,通过输入以下命令重新启动 Postfix:

sudo service postfix restart

步骤 3 —— 测试 SMTP 服务器是否能发送邮件

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

要发送测试邮件,请输入:

echo "This is the body of the email" | mail -s "This is the subject line" user@example.com

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

现在检查您发送测试消息的电子邮件地址。

您应该在收件箱中看到该消息。如果没有,请检查您的垃圾邮件文件夹。

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

步骤 4 —— 转发系统邮件

我们要设置的最后一件事是转发,以便您可以将发送到系统上的 root 邮件转发到您的个人外部电子邮件地址。

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

sudo nano /etc/aliases

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

# See man 5 aliases for format
postmaster:    root

通过该设置,系统生成的邮件将发送到 root 用户。您要做的是编辑它,以便将这些邮件重定向到您的电子邮件地址。为此,请编辑文件,使其如下所示:

# See man 5 aliases for format
postmaster:    root
root:          sammy@example.com

sammy@example.com 替换为您的个人电子邮件地址。完成后,保存并关闭文件。要使更改生效,请运行以下命令:

sudo newaliases

您现在可以通过以下命令向 root 账户发送电子邮件来测试它是否有效:

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

您应该会在您的电子邮件地址收到该邮件。如果没有,请检查您的垃圾邮件文件夹。

(可选)步骤 5 —— 保护您的域免受垃圾邮件的侵害

在这一步中,您将获得一些文章的链接,以帮助您保护您的域免受被用于发送垃圾邮件的侵害。这是一个可选但强烈推荐的步骤,因为如果配置正确,这将使使用您域名作为发件人地址发送垃圾邮件变得困难。

进行这些额外的配置步骤还将使常见的邮件提供商更有可能将来自您服务器的邮件视为合法邮件,而不是标记为垃圾邮件。

  • 如何使用 SPF 记录防止欺骗和提高电子邮件可靠性
  • 如何在 Debian Wheezy 上安装和配置 DKIM 与 Postfix
  • 此外,请确保服务器的 PTR 记录与邮件服务器在发送消息时使用的主机名匹配。在 DigitalOcean,您可以通过在控制面板中更改 Droplet 的名称来更改 PTR 记录

尽管第二篇文章是为 Debian Wheezy 编写的,但相同的步骤也适用于 Ubuntu 14.04。


http://www.niftyadmin.cn/n/5536302.html

相关文章

Java中的内存数据库与缓存技术

Java中的内存数据库与缓存技术 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 1. 内存数据库的概念与优势 1.1 什么是内存数据库? 内存数据库是…

[C++]——同步异步日志系统(2)

同步异步日志系统 一、 不定参函数1.1 不定参宏函数的使用1.2 C 语言中不定参函数的使用1.3 C不定参数使用 二、设计模式2.1 单列模式2.2 工厂模式2.3 建造者模式2.4 代理模式 在我们开发同步异步日志系统之前,需要了解一些相关的技术知识。 一、 不定参函数 在初学…

51单片机通过控制寄存器控制设备,那么程序中变量的运算职责由谁完成的呢

在51单片机(或更广泛地说,在任何微控制器或微处理器系统中)的程序执行过程中,变量的运算职责主要由中央处理器(CPU)完成。CPU 负责执行程序中的指令,包括对各种变量进行算术和逻辑运算。 当你编…

前端代码规范 - 日志打印规范

在前端开发中,随着项目迭代升级,日志打印逐渐风格不一,合理的日志输出是监控应用状态、调试代码和跟踪用户行为的重要手段。一个好的日志系统能够帮助开发者快速定位问题,提高开发效率。本文将介绍如何在前端项目中制定日志输出规…

访问节点和创建节点的方法都有什么?

访问节点的方法:1、使用ownerDocument属性;2、使用parentNode属性;3、使用childNodes属性;4、使用firstChild属性;5、使用lastChild属性;6、使用nextSibling属性等。 javascript中创建节点的方法&#xff1…

华为HCIP Datacom H12-821 卷24

1.单选题 企业大楼有大量员工通常都在上班时在大厅开始接入到公司的WLAN网络,随着每位员工走到各自的工位过程中,每个人的移动端叶通过漫游的方式漫游到各自的网络覆盖区域。为了尽量保证每个终端的IP地址是固定的,建议的做法是? A、配置VLAN Pool并配置顺序算法 B、…

脑启发设计:人工智能的进化之路

编者按:你可以用左手(不常用的那只手)的小指与食指拿起一件物品么? 试完你是不是发现自己竟然可以毫不费力地用自己不常用的手中,两根使用频率相对较低的手指,做一个不常做的动作。这就是人类大脑不可思议…

【产品经理】订单处理11-订单修改场景梳理

为了应对订单修改的场景,电商ERP系统应该如何设计相应模块? 电商ERP系统,经常遇到需要修改订单的情况,修改订单主要以下几种场景: 一、修改商品 修改商品,包括对正常商品的换货、以及对赠品的增删改。 1…