sendmail 可以使用不同类型的通信协议,如 TCP/IP 和 UUCP。
sendmail 可以实现 SMTP 服务器、邮件排队和邮递列表。
sendmail 可以通过使用符合以下命名约定的模式匹配系统来控制名称解释。
基于域的命名约定。通过域技术可以区分物理命名和逻辑命名问题。有关域的更多信息,请参阅邮件地址。
临时技术,如提供对于其他网络中的主机而言看似位于本地的网络名。
任意(早期)命名语法。
完全不同的命名方案。
Solaris 操作系统使用 sendmail 程序作为邮件路由器。以下列表介绍了该程序的一些功能。
sendmail 负责接收电子邮件并将其传送给本地传送代理,如 mail.local 或 procmail。
sendmail 是一个邮件传输代理,用于接受来自用户代理(如 mailx 和 Mozilla 邮件)的邮件并通过 Internet 将其路由至目标。
sendmail 通过以下方法来控制用户发送的电子邮件。
确定收件人的地址
选择合适的传送程序
以传送代理可以处理的格式重写地址
根据需要重新格式化邮件头
最后将已转换的邮件传递给邮件程序以进行传送
有关 sendmail 程序的更多信息,请参阅以下主题。
sendmail 程序支持三种邮件重新路由机制。您选择的机制取决于涉及的更改类型。
服务器更改
域范围的更改
面向一个用户的更改
此外,您选择的重新路由机制还会影响所需要的管理级别。请考虑以下选项。
一种重新路由机制是别名。
根据使用的文件类型,别名可在服务器范围内或名称服务范围内将名称映射为地址。
请考虑名称服务别名的以下优点和缺点。
使用名称服务别名文件允许从单个源中管理邮件重新路由更改。但是传播重新路由更改时,名称服务别名会产生延迟时间。
名称服务管理通常限制为一组选定的系统管理员。普通用户将不能管理此文件。
请考虑使用服务器别名文件的以下优点和缺点。
通过使用服务器别名文件,指定的服务器上能够成为 root 的任何用户都可管理重新路由。
传播重新路由更改时,服务器别名会产生很短的延迟时间或消除延迟时间。
更改仅会影响本地服务器,这在大多数邮件都发送至一台服务器时可以接受。但是,如果需要将此更改传播至许多邮件服务器,请使用名称服务。
普通用户将不能管理此更改。
有关更多信息,请参阅本章中的邮件别名文件。有关任务列表,请参阅第 13 章,邮件服务(任务)中的管理邮件别名文件(任务列表)。
第二种机制是转发。
通过此机制,用户可以管理邮件重新路由。本地用户可将其传入邮件重新路由至以下位置。
其他邮箱
不同的邮件程序
其他邮件主机
通过使用 .forward 文件可支持此机制。有关这些文件的更多信息,请参阅本章中的.forward 文件。有关任务列表,请参阅第 13 章,邮件服务(任务)中的管理 .forward 文件(任务列表)。
最后一种重新路由机制是包含。
通过此机制,用户可维护别名列表而不会要求 root 访问。要提供此功能,root 用户必须在服务器上的别名文件中创建相应的项。创建该项之后,用户即可根据需要重新路由邮件。有关包含的更多信息,请参阅本章中的/etc/mail/aliases 文件。有关任务列表,请参阅第 13 章,邮件服务(任务)中的管理邮件别名文件(任务列表)。
读取邮件的程序(如 /usr/bin/mailx)可以有自己的别名,该别名在邮件到达 sendmail 之前会进行扩展。sendmail 的别名可以来自许多名称服务源,如本地文件、NIS 或 NIS+。查找的顺序由 nsswitch.conf 文件确定。请参阅 nsswitch.conf(4) 手册页。
sendmail 很可靠。该程序旨在正确传送每封邮件。任何邮件都不会完全丢失。
sendmail 会尽可能使用现有软件进行传送。例如,用户会与邮件生成程序和邮件发送程序进行交互。提交邮件时,邮件生成程序会调用 sendmail,后者将邮件路由至正确的邮件程序。由于有些发送器可能是网络服务器,有些邮件程序可能是网络客户机,因此可将 sendmail 用作 Internet 邮件网关。有关该过程的更详细说明,请参见邮件程序的交互。
可将 sendmail 配置为用于包括多个网络的复杂环境。sendmail 会检查地址的内容及其语法,以确定要使用的邮件程序。
sendmail 使用配置文件来控制邮件配置,而不要求将该配置信息编译成代码。
用户可以维护各自的邮递列表。此外,各用户还可以指定各自的转发机制,而无需修改域范围的别名文件,该文件通常位于 NIS 或 NIS+ 维护的域范围别名中。
每个用户可以指定自定义邮件程序,以处理传入邮件。自定义邮件程序可以提供返回内容为“I am on vacation.”等类似邮件的功能。有关更多信息,请参见 vacation(1) 手册页。
sendmail 可将地址批处理至单独一台主机,以减少网络通信流量。
配置文件控制 sendmail 执行其功能的方法。配置文件可确定要选择的传送代理、地址重写规则以及邮件头格式。sendmail 程序使用 /etc/mail/sendmail.cf 文件中的信息来执行其功能。
Solaris 操作系统在 /etc/mail 目录中提供了两个缺省配置文件。
submit.cf,用于在邮件提交程序模式而非守护进程模式下运行 sendmail 的配置文件。有关更多信息,请参阅sendmail 版本 8.12 中的配置文件 submit.cf。
设置邮件客户机、邮件服务器、邮件主机或邮件网关时,请考虑以下情况:
要设置邮件主机或邮件网关,需要设置邮件配置所需的中继邮件程序和中继主机参数。有关任务信息,请参阅第 13 章,邮件服务(任务)中的设置邮件服务(任务列表)或生成 sendmail.cf 配置文件。请注意,在 sendmail 版本 8.13 中,不再需要 main.cf 文件。
以下列表介绍了可以根据站点的要求来更改的一些配置参数。
时间值,用于指定以下信息。
读取超时。
将邮件返回给发件人之前,该邮件在队列中保持未传送状态的时间长度。请参阅sendmail 版本 8.12 中新增的队列功能。有关任务列表,请参阅管理队列目录(任务列表)。
传送模式,用于指定传送邮件的快速程度。
负荷限制,可在繁忙期间提高效率。这些参数可防止 sendmail 尝试传送大型邮件、向许多收件人传送邮件以及向已长时间关闭的站点传送邮件。