在 Oracle® Solaris 11.2 中管理 sendmail 服务

退出打印视图

更新时间: 2014 年 7 月
 
 

sendmail 和名称服务

sendmail 可对名称服务强加各种要求。为增强您对这些要求的理解,本节将首先介绍邮件域与名称服务域之间的关系。然后,本节会介绍各种要求。请参阅以下主题。

邮件域和名称服务域

邮件域名必须是名称服务域名的后缀。例如,如果名称服务的域名为 A.B.C.D,则邮件域名可能是以下各项之一。

  • A.B.C.D

  • B.C.D

  • C.D

  • D

最初建立时,邮件域名通常与名称服务域名相同。随着网络规模的变大,名称服务域可以划分为几个较小的部分,以使名称服务更易于管理。但是,为提供一致的别名,邮件域通常保持不划分状态。

名称服务的要求

本节介绍 sendmail 对名称服务强加的要求。

必须在名称服务中设置主机表或映射,才能支持三种类型的 gethostbyname() 查询。

  • mailhost-部分名称服务配置会自动满足此要求。

  • 完整主机名(例如,smith.admin.example.com)-许多名称服务配置都满足此要求。

  • 短主机名(例如 smith)-sendmail 必须连接至邮件主机,才能转发外部邮件。要确定邮件地址是否位于当前邮件域内,可使用完整主机名调用 gethostbyname()。如果找到该项,则将地址视为内部地址。

    NIS 和 DNS 都支持 gethostbyname() 以短主机名作为参数,因此会自动满足这一要求。

还需要遵循有关主机名服务的其他两条规则,才能在名称服务内建立有效的 sendmail 服务。

  • gethostbyname() 在使用完整主机名参数和短主机名参数时应产生一致的结果。例如,如果从邮件域 admin.example.com 中调用 gethostbyname(smith.admin.example.com)gethostbyname(smith),则这两个函数应返回相同结果。

  • 对于通用邮件域下的所有名称服务域,使用短主机名的 gethostbyname() 应产生相同结果。例如,如果给定邮件域 smith.admin.example.com,则当调用来自 ebb.admin.example.com 域或 esg.admin.example.com 域时,gethostbyname(smith) 应返回相同结果。邮件域名通常比名称服务域名短,这样此要求针对各种名称服务可具有特殊含义。

有关 gethostbyname() 函数的更多信息,请参阅 gethostbyname(3NSL) 手册页。