MH 的 .maildelivery 文件
用途
指定接收邮件时要执行的操作。
描述
$HOME/.maildelivery 文件包含 slocal 命令对接收到的邮件执行的操作的列表。 slocal 命令读取 $HOME/.maildelivery 文件,并在激活该文件时执行指定的操作。
在 $HOME/.maildelivery 文件中指定您自己的邮件传递指示信息。 $HOME/.maildelivery 文件中的每一行都描述了一个操作以及应该执行该操作的条件。 以下五个参数必须出现在文件的每一行中。 这些参数之间用逗号或空格字符分隔:
.maildelivery 文件中的空行将被忽略。 第 1 列中的 # (井号) 表示注释。 文件是从头到尾读取的,因此可以通过多个操作进行多个匹配。 .maildelivery 文件应该由用户所有,并且所有者可以是唯一具有写访问权的文件。
如果找不到 $HOME/.maildelivery 文件或未交付消息,那么将以相同方式使用 /etc/mh/maildelivery 文件。 如果消息仍未传递,那么会将其放入用户的邮件删除。 缺省邮件删除是 /usr/mail/$USER 文件。
MH 包包含四个标准程序,这些程序可以作为 receive-mail 挂钩运行: Rcvdist, 接收包, 接收存储和 已接收 命令。
参数
| 项 | 描述 |
|---|---|
| Field | 指定要在其中搜索与 模式 参数匹配的模式的头组件。 为 字段 参数指定下列其中一个值:
|
| Pattern | 指定要在 字段 参数所给定的头组件中搜索的字符串。 例如,如果您指定了From在 字段 参数中, 模式 参数可能包含类似如下的地址:sarah@mephisto. 模式 参数是不区分大小写的。 字符串与大写和小写字符的任意组合匹配。 如果使用 * (星号) ,请指定哑元模式或指定default在 字段 参数中。 |
| Action | 指定要对消息执行的操作 (如果它包含 模式 参数中指定的模式)。 指定以下值:
|
| Result | 指示应该如何执行该操作。 您可以为该参数指定下列其中一个值:
|
| "String" | 指定如果将 文件 值用于 行动 参数,那么可以将消息追加到其中的文件。 如果您使用 管道 或 Qpipe 值,那么 "字符串" 参数会指定要执行的命令。 如果您使用 破坏 值作为 行动 参数,那么不会使用 "字符串" 参数,但您仍必须包含哑元 "字符串" 参数。 |
示例
- 要将消息保存在特定文件中,请输入:
此示例指示 斯本地 命令搜索以下内容:From消息中的头行。 当 斯本地 命令从以下地址找到消息时george,它将消息归档到一个名为george.mail.From george file A george.mail - 要将消息的副本保存在文件中,请输入:
此示例指示 斯本地 命令在消息中搜索地址字段。 当它找到项目管理器的消息时, 斯本地 命令会将该消息的副本归档到一个名为proj_X/statlog. 原始消息未被视为已传递 (R值) ,因此该消息仍被视为邮件,您将像往常一样收到通知。addr manager > R proj_X/statlog - 要获得您已收到邮件的通知,请输入:
在此示例中,/home/sarah/allmail文件包含以下行:* - | R "/usr/lib/mh/rcvtty /home/sarah/allmail"
该/home/sarah/allmail文件必须具有执行许可权。 当你有邮件的时候You have mail显示在控制台上。echo "You have mail\n" - 要转发消息的副本,请输入:
此示例指示 斯本地 命令在消息中搜索地址字段。 当它找到到项目经理的消息时, 斯本地 命令会将该消息的副本发送到amy. 原消息不受影响。 将始终执行该操作 (A值)。 斯本地 命令为将副本分发给另一个用户而读取的命令是 Rcvdist 命令。addr manager | A "/usr/lib/mh/rcvdist amy" - 要保存任何未传递的消息,请输入:
此示例指示 斯本地 命令查找所有未传递的消息。 该-(短划线) 是 模式 参数的占位符。 该>(大于号) 指示 斯本地 命令对它找到的消息进行归档。 该?(问号) 指示 斯本地 命令仅对未传递的消息作出响应。 用于存储未传递消息的文件的名称为mailbox.default - > ? mailbox
文件
| 项 | 描述 |
|---|---|
| $HOME/.forward | 在收到邮件时由 发送邮件 命令搜索,其中包含要将邮件转发到的机器的路径或用于启动 斯本地 命令的行。 |
| /usr/mail/$USER | 提供缺省邮件放置。 |
| /usr/lib/mh/ slocal | 包含用于读取 .maildelivery 文件的 斯本地 命令。 |
| /etc/mh/maildelivery | 包含 slocal 命令读取的邮件传递指示信息 (如果在 $HOME/.maildelivery 文件中未指定任何内容)。 |
| $HOME/.maildelivery | 为要执行的 斯本地 命令指定与邮件相关的操作。 |