网络管理员指南 -14.建立smail并运行 -8>递送信息到本地地址

/ns/wz/net/data/20020808040457.htm

网络管理员指南 -14.建立smail并运行 -8>递送信息到本地地址


本文出自:http://www.linpus.com.tw 作者: Andrew Anderson


最为通常的,一个本地地址只是一个用户的注册名。在这个例子中信息被递送到她的邮箱/var/spool/mail/user。
其它例子包含化名和邮递名列表,并且邮件由用户转发。在这些例子中,本地地址扩展到一个地址的新的列表,它
可能是本地或者是远程的。

除了这些“常用的”地址,smail可以处理其他类型的本地信息的目标,如文件名和管道命令。这不是在他们自己权
限下的地址,因此你不能发送邮件到/etc/passwd@vbrew.com。如果他们是从转发或者是化名文件中得到的他们是唯
一有效的。

一个文件名都是由一个斜线(/)或者是一个片()开头的。后者指定用户的根路径,只有当文件名从一个转发文件
或者是邮箱中的一个转发入口(参考下面)中得到的时候才有可能。当递送到一个文件中的时候,smail副送信息到
文件,并在可能的时候创立。一个通路命令可能是通路符号(|)处理的任何命令。这使smail传送命令连同他的参数一
起到shell,但是没有`|'开头。信息本身反应到标准输入的这个命令。

例如,要使一个邮件列表输入到一个本地的新闻组,你可能使用一个名为gateit的shell script,并设置一个本地化
名,它从这个邮件列表中使用"|gateit"递送所有信息到script。

如果命令中包含空白,它必须被扩在双引号中。按照安全考虑,如果地址用某个不确定的方式得到,需要谨慎执行命
令(例如,如果化名文件来自可以被任何人改写的地址的时候)。


--------------------------------------------------------------------------------
本地用户

对于本地用户的处理主要集中在指示一个邮箱。这个邮箱保存在/var/spool/mail并且使用的是用户的名字。它属于用
户并且按照邮件组的形式使用的模式是660。如果它不存在,它会由smail建立。

注意,通过/var/spool/mail的是当前放置邮箱文件的标准位置。一些邮件软件可能有编辑的不同路径,例如
/var/spool/mail。如果在你的机器上递送到用户经常失败,你必须尝试它是否可以帮助建立一个symbolic连接到
/var/spool/mail.

Smail要求存在于两个地址:MAILER-DAEMON和Postmaster. 当为一个为递送的邮件产生一组信息的时候,一个carbon
会被发送到邮件帐户去检查(以防止可能产生的一个配置问题)。MAILER-DAEMON被用来在反弹信息上作为发送者的地址。

如果这些地址没有在你的系统上命名有效的帐户,smail会暗中定位MAILER-DAEMON到邮件管理,相应的从postmaste到根。
你必须经常通过更改负责保留邮件软件的postmaster帐户的名字来解决。




--------------------------------------------------------------------------------

转发

一个用户可能使用smail支持的两种方法中的一种重新转送邮件到另外一个地址。一个选择是在邮箱文件的首行输入:
Forward to recipient。这将发送所有进入的邮件到收件人指定的列表。另外,她也可以在她的根路径下建立一个转发
文件,它包含用逗号分隔开的接收者列表。通过不同的转发,文件中的所有行都会被阅读并翻译。

注意,可能使用任何类型的地址。因此,一个专业的转发文件的例子可以是:

janet, "|vacation"
第一个地址只是传送进入的信息到janet的邮箱,而专业命令会返回一个简短的通知到发送者。


--------------------------------------------------------------------------------

化名文件

smail能够和谐的将化名文件同Berkeley's sendmail一起和谐处理,进入化名文件的格式是:

alias: recipients
收件人是一个由逗号分隔开的地址列表,它将会被化名替代。如果下一行由TAB开头,接收列表可能继续从新行开始。

有一个特殊的特征允许handle从化名文件中处理邮件列表:如果你指定“:包含:文件名”作为收件人,smail将详细
阅读文件,并将其内容替代为一组收件人。

主要的化名文件是/usr/lib/aliases.如果你选择使这个文件为世界可写,smail将不会处理任何信息到这个文件中给出
的shell命令。一个样本文件如下:

# vbrew.com /usr/lib/aliases file
hostmaster: janet
postmaster: janet
usenet: phil
# The development mailing list.
development: joe, sue, mark, biff
/var/mail/log/development
owner-development: joe
# Announcements of general interest are mailed to all
# of the staff
announce: :include: /usr/lib/smail/staff,
/var/mail/log/announce
owner-announce: root
# gate the foobar mailing list to a local newsgroup
ppp-list: "|/usr/local/lib/gateit local.lists.ppp"

如果当递送到一个化名文件中产生的地址时发生错误的时候,smail将尝试发送错误信息的一个副本到“化名所有者”。
例如,如果当递送一个信息到发展邮件列表的递送到biff失败,一个错误的信息将会发送到发送人,邮件管理者和所
有者发展。如果所有者地址不存在,不会产生另外的信息。

当递送达到文件或者当引发化名文件中给出的程序,smail将成为无人用户以避免任何的安全混乱。特别是当递送到文
件的时候,它可能是非常有害的。例如,在上面给出的文件中,记录文件必须不能由任何人所有和改写,并且递送到
它们时也将失败。


--------------------------------------------------------------------------------
邮件列表

作为使用化名文件的替代,邮件列表也可以在/usr/lib/smail/lists路径下通过文件方式被管理。一个名为nag-bugs的
邮件列表被文件lists/nag-bugs进行描述,它需要包含成员的信息,由逗号分开,列表可能作为多行给出,命令由一个
杂乱的标志介绍。

对于每个邮件列表,一个名字为owner-listname的用户(或者是化名)必须存在。任何当解决一个地址的时候发生的错误
都将会汇报给用户。这个地址还被用作在发送者的所有的发出信息中的发送者地址:标题栏。