1.3. 别名 aliases 和 .forward 文件

1.3.1. /etc/mail/aliases
1.3.2. ~/.forward

1.3.1. /etc/mail/aliases

一个重要的邮件重写规则。root 用户可以通过对该文件的配置,建立邮件组、重定向本地用户等等。别名文件会循环检查,直到影射到的邮件地址不在本机接收之列(参见配置文件/etc/mail/local-host-names)。

示例:

user1:        me@otherdomain.com,user2,user3    1
user2:        user2@otherdomain.com
alises:       :include:/etc/mail/filealiases    2
list-request: |/usr/local/bin/auto_reply        3
nobody:       /dev/null                         4
1

逗号分隔多个地址。

2

对于经常变化的邮件列表,可以采用外部文件方式。一个邮件一行。

3

管道

4

设备文件

更改别名文件后使用newaliases或sendmail -bi建立邮件别名文件的二进制数据文件。

特殊的别名

  1. owner-aliasname : address

    设置该别名后,退信将退回到owner-xxx 别名下。

1.3.2. ~/.forward

别名文件一般由root用户管理,而普通用户则可以通过用户主目录下的 .forward 文件,实现邮件别名、转发等一系列处理功能。

当一个别名解析成一个本地用户地址后,sendmail 察看该用户主目录是否存在 .forward 文件,如果存在,读取该文件中的内容,决定进一步的处理方式。

.forward 文件可以通过三种不同的处理方式,对接受的邮件进行处理:定义存储邮件的邮箱文件名(以字符“/”开始的文件名)、进行转发的目的地址、管道(以字符“|”开始,对电子邮件进行处理的外部应用程序)。可以使用第三种方法“管道”,来启动 Procmail。 该文件格式类似 aliases 文件,但是省略了冒号之前的部分,毕竟.forward只针对一个特定的本地用户么。

例如:用户 johnson,需要将其邮件拷贝一份给 jiangxin,再回复给发信人说本人正在度假(通过 vocation 程序实现),但仍然保留给自己一份。如果 .forward 内容如下,则会造成死循环:

jiangxin
"|/usr/ucb/vacation johnson"
johnson

解决办法是在 johnson 前面加上斜线 \,则再次发送给 johnson 时,则不会再次处理 .forward 文件。修改后如下:

jiangxin,"|/usr/ucb/vacation johnson",\johnson