Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

15.3. 邮件传输代理

Red Hat Enterprise Linux 7 提供两个主要 MTA:Postfix 和 Sendmail。Postfix 配置为默认的 MTA,并且 Sendmail 被视为已弃用。如果需要将默认 MTA 切换到 Sendmail,您可以卸载 Postfix 或以 root 用户身份使用以下命令切换到 Sendmail:

~]# alternatives --config mta

您还可以使用以下命令启用所需的服务:

~]# systemctl enable service

同样,要禁用该服务,在 shell 提示符后输入以下内容:

~]# systemctl disable service

有关如何在 Red Hat Enterprise Linux 7 中管理系统服务的详情请参考 第 10 章 使用 systemd 管理服务

15.3.1. postfix

Postfix 最初由安全专家和程序员 Wietse Venema 在 IBM 开发,它是一个兼容 Sendmail 的 MTA,旨在安全、快速且易于配置。

为提高安全性,Postfix 使用模块化设计,由 master 守护进程启动具有有限特权的小型进程。较少的特权较小的进程执行与邮件发送的各个阶段相关的非常具体的任务,并在更改的根环境中运行,以限制攻击的影响。

将 Postfix 配置为接受来自本地计算机以外的主机的网络连接,只需在其配置文件中进行一些细微更改。然而,对于具有更复杂需求的用户,Postfix 提供各种配置选项,以及使其成为功能非常多、功能齐全的第三方附加组件。

Postfix 的配置文件是人类可读的,并且支持超过 250 个指令。与 Sendmail 不同,更改生效不需要宏处理,并且大部分最常用的选项在大量注释的文件中予以说明。

15.3.1.1. 默认 Postfix 安装

Postfix 可执行文件是 postfix。此守护进程启动处理邮件发送所需的所有相关进程。

Postfix 将其配置文件存储在 /etc/postfix/ 目录中。以下是最常用的文件列表:

  • 访问权限 - 用于访问控制,此文件指定允许哪些主机连接到 Postfix。
  • main.cf - 全局 Postfix 配置文件。大多数配置选项在此文件中指定。
  • master.cf - 指定 Postfix 如何与各种进程交互来完成邮件发送。
  • transport - 映射用于中继主机的电子邮件地址。

别名 文件可以在 /etc 目录中找到。此文件在 Postfix 和 Sendmail 之间共享。它是邮件协议所需的可配置列表,用于描述用户 ID 别名。

重要

默认的 /etc/postfix/main.cf 文件不允许 Postfix 接受来自本地计算机以外的主机的网络连接。有关将 Postfix 配置为其他客户端的服务器的详情请参考 第 15.3.1.3 节 “基本 Postfix 配置”

在更改 /etc/postfix/ 目录下配置文件中的任何选项后,重新启动 postfix 服务,以便使这些更改生效。要做到这一点,以 root 运行以下命令:

~]# systemctl restart postfix

15.3.1.2. 从以前的版本升级

Red Hat Enterprise Linux 7 中的以下设置与之前的版本不同:

  • disable_vrfy_command = no - 默认情况下是禁用的,这与 Sendmail 的默认值不同。如果更改为 yes,它可以阻止某些电子邮件地址回收方法。
  • allow_percent_hack = yes - 默认情况下是启用的。它允许删除电子邮件地址中的 % 字符。百分点黑客是一个旧的临时解决方案,允许发件人控制电子邮件信息路由。DNS 和邮件路由现在更加可靠,但 Postfix 继续支持 hack。要关闭百分比重写,请将 allow_percent_hack 设置为 no
  • smtpd_helo_required = no - 默认情况下是禁用的,因为它在 Sendmail 中,因为它可以阻止某些应用程序发送邮件。可以将其更改为 yes,要求客户端在尝试发送 MAIL、FROM 或 ETRN 命令前发送 HELO 或 EHLO 命令。

15.3.1.3. 基本 Postfix 配置

默认情况下,Postfix 不接受来自本地主机以外的任何主机的网络连接。以 root 用户身份执行以下步骤,为网络中的其他主机启用邮件发送:

  • 使用文本编辑器(如 vi )编辑 /etc/postfix/main.cf 文件。
  • 通过删除哈希符号(#)来取消注释 mydomain 行,并将 domain.tld 替换为邮件服务器服务的域,如 example.com
  • 取消注释 myorigin = $mydomain 行。
  • 取消注释 myhostname 行,并将 host.domain.tld 替换为计算机的主机名。
  • 取消注释 mydestination = $myhostname, localhost.$mydomain 行。
  • 取消注释 mynetworks 行,并将 168.100.189.0/28 替换为可以连接到服务器的主机的有效网络设置。
  • 取消注释 inet_interfaces = 所有 行.
  • inet_interfaces = localhost 行添加注释。
  • 重新启动 postfix 服务。

完成这些步骤后,主机将接受外部电子邮件进行发送。

Postfix 对配置选项有较大的分类。学习如何配置 Postfix 的最佳方式之一是读取 /etc/postfix/main.cf 配置文件中的 注释。其他资源包括有关 Postfix 配置、SpamAssassin 集成或 /etc/postfix/main.cf 参数的详细信息,网址为

重要

由于 POODLE 中描述的漏洞:SSLv3 漏洞(CVE-2014-3566), 红帽建议禁用 SSL,仅使用 TLSv1.1TLSv1.2。有关详细信息 ,请参阅 Postfix 和 Dovecot 中的 POODLE SSL 3.0 漏洞(CVE-2014-3566) 解析。

15.3.1.4. 将 Postfix 与 LDAP 搭配使用

Postfix 可以将 LDAP 目录用作各种查找表的源(如 别名虚拟规范 等)。这允许 LDAP 存储分层用户信息和 Postfix 仅在需要时获得 LDAP 查询的结果。通过不在本地存储此信息,管理员可以轻松对其进行维护。

15.3.1.4.1. /etc/aliases 查找示例

以下是使用 LDAP 查找 /etc/aliases 文件的基本示例:确保您的 /etc/postfix/main.cf 文件包含以下内容:

alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf

如果您还没有文件,请创建一个 /etc/postfix/ldap-aliases.cf 文件,并确保该文件包含以下内容:

server_host = ldap.example.com
search_base = dc=example, dc=com

其中 ldap.example.com example .com 和 com 是需要替换为现有可用 LDAP 服务器的规格的参数。

注意

/etc/postfix/ldap-aliases.cf 文件可以指定各种参数,包括启用 LDAP SSLSTARTTLS 的参数。如需更多信息,请参阅 ldap_table(5) man page。

有关 LDAP 的更多信息,请参阅 系统级身份验证指南 中的 OpenLDAP

15.3.2. sendmail

Sendmail 的核心用途,与其他 MTA 一样,是在主机之间安全地传输电子邮件,通常使用 SMTP 协议。请注意,Sendmail 被视为已弃用,建议管理员尽可能使用 Postfix。如需更多信息,请参阅 第 15.3.1 节 “postfix”

15.3.2.1. 用途和限制

切记 Sendmail 是什么以及它可以做什么,而不是了解它的内容。在履行多个角色的单体式应用程序中,Sendmail 可能看似是组织内运行电子邮件服务器的唯一应用程序。从技术上讲,这是正确的,因为 Sendmail 可以假脱机发送邮件至每个用户的 目录,并为用户发送出站邮件。但是,大多数用户实际上需要的不仅仅是简单的电子邮件发送。用户通常希望使用使用 POPIMAP 的 MUA 与电子邮件交互,以将其消息下载到其本地计算机。或者,他们可能希望使用 Web 界面来获取其邮箱的访问权限。这些其他应用程序可以与 Sendmail 配合使用,但实际上由于不同原因而存在,并可相互分离。

进入 Sendmail 应该或可配置为执行的所有内容超出了本节的范围。在字面上数百种不同的选项和规则集中,整个卷都致力于帮助解释所有可以执行的操作,以及如何修复出错的事情。有关 Sendmail 资源列表,请查看 第 15.7 节 “其它资源”

本节 默认回顾通过 Sendmail 安装的文件并回顾基本配置更改,包括如何停止不需要的电子邮件(垃圾邮件)以及如何使用轻量级目录访问协议(LDAP) 扩展 Sendmail。

15.3.2.2. 默认 Sendmail 安装

要使用 Sendmail,首先确保以 root 用户身份运行 在您的系统中安装 sendmail 软件包:

~]# yum install sendmail

要配置 Sendmail,请以 root 用户身份 在您的系统中安装 sendmail-cf 软件包:

~]# yum install sendmail-cf

有关使用 Yum 安装软件包的详情请参考 第 9.2.4 节 “安装软件包”

在使用 Sendmail 之前,必须先从 Postfix 切换默认 MTA。有关如何切换默认 MTA 的更多信息,请参阅 第 15.3 节 “邮件传输代理”

Sendmail 可执行文件是 sendmail

Sendmail 配置文件位于 /etc/mail/sendmail.cf。避免直接编辑 sendmail.cf 文件。要对 Sendmail 进行配置更改,请编辑 /etc/mail/sendmail.mc 文件,备份原始 /etc/mail/sendmail.cf 文件,然后重新启动 sendmail 服务。作为重启的一部分,会重建 sendmail.cf 文件和所有数据库二进制表示法:

# systemctl restart sendmail

有关配置 Sendmail 的更多信息,请参阅 第 15.3.2.3 节 “常见 Sendmail 配置更改”

各种 Sendmail 配置文件安装在 /etc/mail/ 目录中,其中包括:

  • 访问 - 指定哪些系统可以使用 Sendmail 作为出站电子邮件.
  • domaintable - 指定域名映射。
  • local-host-names - 指定主机的别名。
  • mailertable - 指定覆盖特定域路由的指令。
  • virtusertable - 指定特定域的别名形式,允许在一台计算机上托管多个虚拟主机。

/etc/mail/ 目录中的多个配置文件(如 access、domain table、mailertablevirtusertable )会在 Sendmail 可以使用任何配置更改之前将其信息存储在数据库文件中。

要将对这些配置所做的任何更改包含在其数据库文件中,请运行以下命令:

# systemctl restart sendmail

15.3.2.3. 常见 Sendmail 配置更改

更改 Sendmail 配置文件时,最好不要编辑现有文件,而是生成一个全新的 /etc/mail/sendmail.cf 文件。

警告

在替换或更改 sendmail.cf 文件之前,请先创建备份副本:

要向 Sendmail 添加所需的功能,请以 root 用户身份 编辑 /etc/mail/sendmail.mc 文件。完成后,重启 sendmail 服务,如果安装了 m4 软件包,m4 宏处理器将自动生成新的 sendmail.cf 配置文件:

~]# systemctl restart sendmail
重要

默认 sendmail.cf 文件不允许 Sendmail 接受来自本地计算机以外的任何主机的网络连接。要将 Sendmail 配置为其他客户端的服务器,请编辑 /etc/mail/sendmail.mc 文件,然后更改 DAEMON_OPTIONS 指令的 Addr= 选项中指定的地址,从 127.0.0.1 注释到活动网络设备的 IP 地址,或者在 行首 添加注释掉 DAEMON_OPTIONS 指令。完成后,重启服务来重新生成 /etc/mail/sendmail.cf:

~]# systemctl restart sendmail

Red Hat Enterprise Linux 中的默认配置适用于大多数 SMTP站点。

编辑 /usr/share/sendmail-cf/README 文件,然后编辑 /usr/share/sendmail-cf/ 目录下的任何文件,因为它们可能会影响 /etc/mail/sendmail.cf 文件的未来配置。

15.3.2.4. 伪装

种常见的 Sendmail 配置是让单个计算机充当网络上所有计算机的邮件网关。例如,公司可能希望一台名为 mail.example.com 的计算机来处理其所有电子邮件,并为所有传出邮件分配一致的返回地址。

在这种情况下,Sendmail 服务器必须伪装公司网络上的计算机名称,以便其返回地址为 user@example.com 而不是 user@host.example.com。

要做到这一点,请在 /etc/mail/sendmail.mc 中添加以下行:

FEATURE(always_add_domain)dnl
FEATURE(masquerade_entire_domain)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(allmasquerade)dnl
MASQUERADE_DOMAIN(`example.com.')dnl
MASQUERADE_AS(`example.com')dnl

sendmail.mc 中更改的配置生成一个新的 sendmail.cf 文件后,使用以下命令重启 sendmail 服务:

# systemctl restart sendmail

请注意,邮件服务器、DNSDHCP 服务器的管理员以及任何调配应用程序都应就组织中使用的主机名格式达成一致。有关推荐命名实践的更多信息,请参阅红帽企业 Linux 7 网络指南

15.3.2.5. 停止 Spam

垃圾邮件可定义为无需任何请求通信的用户收到的不必要的电子邮件。它是一种破坏性、昂贵且广泛滥用互联网通信标准的行为。

Sendmail 使得阻止新垃圾邮件发送垃圾电子邮件相对容易。默认情况下,它甚至会阻止许多更常见的垃圾邮件方法。sendmail 中的主要反垃圾邮件功能是标题检查、转发拒绝 (默认为 8.9 版本)、访问数据库和发件人信息检查

例如,自 Sendmail 版本 8.9 开始,默认禁用 SMTP 消息转发(也称为转发)。在发生此更改之前,Sendmail 会指示邮件主机(x.edu)接受来自某一方(y.com)的邮件并将其发送到其他方(z.net)。但是现在,Sendmail 必须配置为允许任何域通过服务器转发邮件。要配置中继域,请编辑 /etc/mail/relay-domains 文件并重新启动 Sendmail

~]# systemctl restart sendmail

但是,互联网上的服务器也可以发送垃圾邮件消息。在这些实例中,可以通过 /etc/mail/access 文件使用 Sendmail 的访问控制功能来防止来自不需要的主机的连接。以下示例说明了如何将此文件用于 块,并特别允许访问 Sendmail 服务器:

badspammer.com ERROR:550 "Go away and do not spam us anymore" tux.badspammer.com OK 10.0 RELAY

此示例显示从 badspammer.com 发送的任何电子邮件都会被阻止,并显示 550 个 RFC-821 兼容错误代码,并发回邮件。接受从 tux.badspammer.com 子域发送的电子邮件。最后一行显示从 10.0 发送的任何电子邮件。网络可以通过邮件服务器转发

因为 /etc/mail/access.db 文件是一个数据库,请使用以下命令更新任何更改:

# systemctl restart sendmail

以上示例仅代表 Sendmail 允许或阻止访问的一小部分。有关详细信息和示例,请参见 /usr/share/sendmail-cf/README 文件。

由于 Sendmail 在发送邮件时调用 Procmail MDA,因此也可以使用垃圾邮件过滤程序(如 SpamAssassin)为用户识别和文件垃圾邮件。有关使用 SpamAssassin 的详情,请查看 第 15.4.2.6 节 “垃圾邮件过滤器”

15.3.2.6. 将 Sendmail 与 LDAP 搭配使用

使用 LDAP 是一种非常快速、强大的方式,可以从大得多的组中查找特定用户的特定信息。例如,LDAP 服务器可用于按用户的姓氏从通用企业目录查找特定的电子邮件地址。在这种实施中,LDAP 很大程度上独立于 Sendmail,而 LDAP 存储分层用户信息和 Sendmail 仅获得预先寻址电子邮件消息中的 LDAP 查询的结果。

但是,Sendmail 支持与 LDAP 的更大集成,它使用 LDAP 在支持中级组织的不同邮件服务器上单独替换 /etc/aliases 和 /etc/mail/virtusertables 等单独维护的文件。简而言之,LDAP 将邮件路由级别从 Sendmail 抽象到可以被许多不同的应用程序利用的强大 LDAP 群集。

当前版本的 Sendmail 包含对 LDAP 的支持。要使用 LDAP 扩展 Sendmail 服务器,请首先获取一个 LDAP 服务器,如 OpenLDAP,并运行并正确配置。然后编辑 /etc/mail/sendmail.mc 以包括以下内容:

LDAPROUTE_DOMAIN('yourdomain.com')dnl
FEATURE('ldap_routing')dnl
注意

这仅适用于使用 LDAP 的 Sendmail 的非常基本配置。配置可能会有很大差异,具体取决于 LDAP 的实施,特别是将多个 Sendmail 计算机配置为使用通用 LDAP 服务器时。

有关详细的 LDAP 路由配置说明和示例,请参阅 /usr/share/sendmail-cf/README

接下来,通过运行 m4 宏处理器并再次重新启动 Sendmail 来重新创建 /etc/mail/sendmail.cf 文件。具体步骤请查看 第 15.3.2.3 节 “常见 Sendmail 配置更改”

有关 LDAP 的更多信息,请参阅 系统级身份验证指南 中的 OpenLDAP

15.3.3. fetchmail

获取邮件是一个 MTA,它从远程服务器检索电子邮件并将其发送到本地 MTA。许多用户都感谢能够将下载位于远程服务器的消息与在 MUA 中读取和整理电子邮件的过程分开。根据拨号用户的需求设计,Fetchmail 使用包括 POP3 和 IMAP 在内的任意协议(包括 POP3IMAP )连接并快速下载所有电子邮件到邮件池文件。如有必要,它甚至可以将电子邮件转发至 SMTP 服务器。

注意

要使用 Fetchmail,请首先确保以 root 用户身份在您的系统中安装 fetchmail 软件包:

~]# yum install fetchmail

有关使用 Yum 安装软件包的详情请参考 第 9.2.4 节 “安装软件包”

通过在用户主目录中的 a .fetchmailrc 文件为每个用户配置 fetchmail。如果尚不存在,请在主目录中创建 .fetchmailrc 文件

使用 .fetchmailrc 文件中的首选项,Fetchmail 检查远程服务器上的电子邮件并下载。然后,它将该邮件传送到本地计算机上的端口 25,使用本地 MTA 将电子邮件放入正确的用户的假脱机文件中。如果 Procmail 可用,则会启动 以过滤电子邮件并将其放置在邮箱中,以便 MUA 可读取该电子邮件。

15.3.3.1. 获取邮件配置选项

虽然可以在命令行上传递所有必要的选项,以便在执行 Fetchmail 时检查远程服务器上的电子邮件,但使用 a .fetchmailrc 文件要简单得多。将任何所需的配置选项放在 .fetchmailrc 文件中,以便在每次发出 fetchmail 命令时使用这些选项。通过在命令行中指定该选项,可以在运行 Fetchmail 时覆盖这些设置。

用户的 .fetchmailrc 文件包含三类配置选项:

  • 全局选项 - 提供控制程序操作的 Fetchmail 指令,或为每个检查电子邮件的连接提供设置。
  • 服务器选项 - 指定有关被轮询服务器的必要信息,如主机名,以及特定电子邮件服务器的首选项,如要检查的端口或在超时前等待的秒数。这些选项会影响使用该服务器的每个用户。
  • 用户选项 - 包含用户名和密码等信息,以便使用指定的电子邮件服务器进行身份验证和检查电子邮件。

全局选项将显示在 .fetchmailrc 文件的顶部,后跟一个或多个服务器选项,各自指定 Fetchmail 应检查的不同电子邮件服务器。用户选项遵循检查该电子邮件服务器的每个用户帐户的服务器选项。与服务器选项一样,可以指定多个用户选项以用于特定的服务器,并检查同一服务器上的多个电子邮件帐户。

服务器选项在 .fetchmailrc 文件中使用特殊的 选项动词( pollskip )调用到 service 中,该动词前面是任何服务器信息。poll 操作告知 Fetchmail 在运行时使用此 server 选项,该选项将使用指定的用户选项检查电子邮件。跳过 操作后的任何服务器选项都不会被检查,除非调用 Fetchmail 时指定此服务器的主机名。skip 选项可用于在 .fetchmailrc 文件中测试配置,因为它仅在特别调用时检查跳过的服务器,不影响任何当前正常工作的配置。

以下是 a .fetchmailrc 文件的示例:

set postmaster "user1"
set bouncemail

poll pop.domain.com proto pop3
  user 'user1' there with password 'secret' is user1 here

poll mail.domain2.com
  user 'user5' there with password 'secret2' is user1 here
  user 'user7' there with password 'secret3' is user1 here

在本例中,全局选项指定用户作为最后的手段(postmaster 选项)发送电子邮件,所有电子邮件错误都会发送到 postmaster 而不是发件人(退回邮件 选项)。set 操作告知 Fetchmail,此行包含全局选项。然后,指定了两台电子邮件服务器,一个设置为使用 POP3 进行检查,另一台用于尝试各种协议来查找有效的协议。使用第二个 server 选项检查两个用户,但为任何用户找到的所有电子邮件都将发送到 user1 的邮件假脱机。这允许在多个服务器上检查多个邮箱,同时显示在一个 MUA 收件箱中。每个用户的具体信息均以 用户 操作开头。

注意

用户无需将其密码放置在 .fetchmailrc 文件中。如果省略 密码为"" 部分,则会在 Fetchmail 启动时询问密码。

fetchmail 具有许多全局、服务器和本地选项。这些选项中很多很少被使用,或者仅适用于非常具体的情况。fetchmail man page 详细介绍了每个选项,但以下三节中列出了最常见的选项。

15.3.3.2. 全局选项

每个全局选项应在设置操作后放置到一行上

  • 守护进程 - 指定 daemon-mode,其中 Fetchmail 保留在后台。将 替换为 Fetchmail 在轮询服务器前要等待的秒数。
  • postmaster - 指定本地用户在发送问题时发送邮件。
  • syslog - 指定日志文件以查找错误和状态消息。默认情况下,这是 /var/log/maillog

15.3.3.3. 服务器选项

服务器选项必须在 轮询跳过 操作后放在其自己的行 in .fetchmailrc 中。

  • auth auth-type - 使用要使用的身份验证类型替换 auth-type。默认情况下 使用密码 身份验证,但某些协议支持其他类型的身份验证,包括 kerberos_v5、kerberos_v4ssh。如果使用 任何 身份验证类型,Fetchmail 首先会尝试不需要密码的方法,然后使用屏蔽密码的方法,最后尝试发送未加密的密码以向服务器发送身份验证。
  • 间隔 - 按其在所有配置的服务器 检查电子邮件的次数对指定服务器轮询一次。此选项通常用于用户很少接收邮件的电子邮件服务器。
  • 端口 port-number - 使用 端口号替换 port-number。这个值覆盖指定协议的默认端口号。
  • Pro to 协议 - 将协议替换为协议,如 pop3imap,以便在检查服务器上的消息时使用。
  • 超时 - 用 Fetchmail 在连接尝试中放弃的服务器 替换秒数。如果没有设置这个值,则使用默认值 300 秒。

15.3.3.4. 用户选项

用户选项可以放置在其服务器选项下的行上,或者放在与服务器选项相同的行上。在这两种情况下,定义的选项都必须遵循 user 选项(如下定义)。

  • fetchall - Orders Fetchmail 下载队列中的所有消息,包括已经查看的邮件。默认情况下,Fetchmail 仅拉取新邮件。
  • fetchlimit number - 将 编号 替换为停止前要检索的消息数。
  • flush - 在检索新消息前删除之前在队列中查看的所有消息。
  • 限制 max-number-bytes - 将 max-number-bytes 替换为 Fetchmail 检索时允许的最大字节大小。在网络链接速度较慢的情况下,当大量消息下载用时,这个选项非常有用。
  • 密码 'password' - 将 password 替换为用户的密码.
  • 预连接"命令 "" - 使用要执行 的命令替换命令,然后再检索用户的消息.
  • 后连接"命令" - 使用检索用户消息后要执行的命令替换 命令.
  • SSL - 激活 SSL 加密.编写本文时,默认操作是使用 SSL2、SSL3、SSL23、TLS1、TLS1.1 和 TLS 1.2 中提供的最佳功能。请注意,SSL2 被视为过时,且由于 POODLE:SSLv3 漏洞(CVE-2014-3566),不应使用 SSLv3。但是,无法强制使用 TLS1 或更新版本,因此确保连接到的邮件服务器已 配置为使用 SSLv2SSLv3。使用 stunnel,其中无法将服务器 配置为使用 SSLv2SSLv3
  • sslproto - 定义允许 SSL 或 TLS 协议.可能的值有 SSL2SSL3SSL 23 和 TLS1。默认值 if sslproto 被 省略、未设置或设置为无效值,即 SSL23。默认操作是最佳使用 SSLv2、SSLv 3、TLSv 1、TLS1.1TLS1.2。请注意,为 SSL 或 TLS 设置任何其他值将禁用所有其他协议。由于 POODLE: SSLv3 漏洞(CVE-2014-3566),建议省略此选项,或者将其设置为 SSLv23,并将对应的邮件服务器 配置为使用 SSLv2SSLv3。使用 stunnel,其中无法将服务器 配置为使用 SSLv2SSLv3
  • 用户 "用户名 "" - 使用 Fetchmail 用于检索邮件 的用户名替换 username.这个选项必须在所有其他用户选项之前。

15.3.3.5. 获取邮件命令选项

执行 fetchmail 命令时,大多数命令行中使用的 Fetchmail 选项都会镜像 .fetchmailrc 配置选项。这样,Fetchmail 可以与或不带有配置文件一起使用。大多数用户不会在命令行中使用这些选项,因为将这些选项保存在 .fetchmailrc 文件中更为简单。

有时可能需要使用其他选项来运行 fetchmail 命令,以满足特定目的。可以发出命令选项来临时覆盖导致错误的 a .fetchmailrc 设置,因为命令行中指定的任何选项都会覆盖配置文件选项。

15.3.3.6. 信息或调试选项

fetchmail 命令后使用的某些选项可以提供重要信息。

  • --configdump - 根据来自 .fetchmailrc 和 Fetchmail defaults 的信息显示每个可能的选项。使用此选项时,不会检索任何用户的电子邮件。
  • -s - 以静默模式执行 Fetchmail,防止任何消息(除错误)在 fetchmail 命令之后显示。
  • -v - 以详细模式执行 Fetchmail,显示 Fetchmail 和远程电子邮件服务器之间的每个通信.
  • -v - 显示详细的版本信息,列出其全局选项,并显示要与每位用户一起使用的设置,包括电子邮件协议和身份验证方法。使用此选项时,不会检索任何用户的电子邮件。

15.3.3.7. 特殊选项

这些选项偶尔可用于覆盖在 .fetchmailrc 文件中经常找到的默认值。

  • -a - Fetchmail 从远程电子邮件服务器下载所有邮件,无论新的还是之前查看过。默认情况下,Fetchmail 仅下载新邮件。
  • -k - Fetchmail 下载邮件后将邮件保存在远程电子邮件服务器上。这个选项覆盖下载消息后删除消息的默认行为。
  • -L max-number-bytes - Fetchmail 不会以特定大小下载任何邮件,而是将它们保存在远程电子邮件服务器上。
  • --quit - 退出 Fetchmail 守护进程进程。

可以在 fetch mail man page 中找到更多命令和.fetchmail rc 选项。

15.3.4. 邮件传输代理(MTA)配置

邮件传输代理 (MTA)是发送电子邮件的基础。邮件用户代理 (MUA)(如 EvolutionMutt )用于读取和编写电子邮件。当用户从 MUA 发送电子邮件时,该邮件将移交给 MTA,该 MTA 通过一系列 MTA 发送邮件,直至该邮件到达其目的地。

即使用户不计划从系统发送电子邮件,某些自动任务或系统程序也可能使用 mail 命令将包含日志消息的电子邮件发送给本地系统的 root 用户。

Red Hat Enterprise Linux 7 提供两个 MTA:Postfix 和 Sendmail。如果同时安装了这两者,Postfix 是默认的 MTA。