在 Oracle® Solaris 11.2 中管理 sendmail 服务

退出打印视图

更新时间: 2014 年 7 月
 
 

.forward 文件

用户可在其起始目录中创建一个 .forward 文件,以供 sendmail 以及其他程序用于重定向邮件或发送邮件。请参阅以下主题。

有关任务列表,请参阅Chapter 2, 管理邮件服务中的管理 .forward 文件(任务列表)

要避免的情况

以下列表介绍了可以避免或轻松解决问题的一些情况。

  • 如果邮件未传送至预期的地址,请检查该用户的 .forward 文件。用户可能已将 .forward 文件放入了 host1 的起始目录,该文件会将邮件转发至 user@host2。当邮件到达 host2 时,sendmail 会在 NIS 别名中检查 user 并将邮件发回至 user@host1。此路由将产生循环以及更多退回的邮件。

  • 要避免安全问题,请勿将 .forward 文件放在 rootbin 帐户中。如有必要,请改用 aliases 文件转发邮件。

.forward 文件的控制

要使 .forward 文件成为邮件传送中的有效部分,请确保正确应用以下控制(主要是权限设置)。

  • .forward 文件必须只能由文件所有者写入。此限制可以防止其他用户破坏安全性。

  • 至起始目录的路径必须只能由 root 拥有和写入。例如,如果 .forward 文件位于 /export/home/terry 中,则 /export/export/home 必须只能由 root 拥有和写入。

  • 实际起始目录应只能由用户写入。

  • .forward 文件不能是符号链接,并且此文件不能包含多个硬链接。

.forward.hostname 文件

可以创建 .forward. hostname 文件以重定向发送给特定主机的邮件。例如,如果用户的别名已从 sandy@phoenix.example.com 更改为 sandy@example.com,请在 sandy 的起始目录中放入一个 .forward.phoenix 文件。

% cat .forward.phoenix
sandy@example.com
"|/usr/bin/vacation sandy"
% cat .vacation.msg
From: sandy@example.com (via the vacation program)
Subject: my alias has changed

My alias has changed to sandy@example.com.
Please use this alias in the future.
The mail that I just received from you
has been forwarded to my new address.

Sandy

在本示例中,在通知发件人发生别名更改后,可将邮件转发至正确地址。由于 vacation 程序仅允许一个邮件文件,因此每次仅能转发一封邮件。但是,如果邮件不是特定于主机,则 .forward 文件可将一个休假邮件文件用于多台主机。

.forward+detail 文件

对转发机制的另一种扩展是 .forward+detail 文件。detail 字符串可以是除运算符字符之外的任意字符序列。运算符字符包括 .:%&!^[]+。通过使用此类型的文件,可以确定是否有其他人在您不知情的情况下使用您的电子邮件地址。例如,如果某个用户告诉其他人使用电子邮件地址 sandy+test1@example.com,该用户将能够识别将来传送给此别名的任何邮件。缺省情况下,将根据别名和 .forward+detail 文件对发送至 sandy+test1@example.com 别名的所有邮件进行检查。如果未找到任何匹配项,邮件将转而传送至 sandy@example.com,但用户可以看到 To: 邮件头中的更改。