这是 slocalmh 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
slocal - 异步过滤和发送新邮件
概要
/usr/lib/mh/slocal [-地址 地址[-信息 data[-发件人 寄件人[-用户 用户名]
[-邮箱 MBOX[-文件 文件[-邮件派送 交付文件[-冗长 | -浓浓的]
[-suppressdup | -nosuppressdup[-调试[-版[-救命]
商品描述
本地 是一个程序,旨在允许您根据以下内容处理入站邮件
一套复杂的选择标准。 您通常不会调用 局部的 你自己,而是
局部的 由您系统的消息传输代理(例如
发邮件) 当消息到达时。
使用的消息选择标准 局部的 is 指定 在文件“。邮件派送“中
用户的主目录。 您可以指定一个备用文件 -邮件派送 文件
选项。 该文件的语法在下面指定。
消息传递地址和消息发送者由消息传输确定
如果可能,代理信封信息。 在下面 发邮件,发件人将从
UUCP“发件人:”行(如果存在)。 用户可以使用 -地址 和
-发件人 开关。
消息通常从标准输入读取。 这 -文件 开关设置名称
应该从中读取消息的文件,而不是读取标准输入。 这很有用
当调试一个“。邮件派送“档案。
- -用户 开关告诉 局部的 为其递送邮件的用户的姓名。 这
-邮箱 开关告诉 局部的 用户的邮件投递文件的名称。
局部的 能够检测和抑制重复消息。 要启用此功能,请使用选项
-suppressdup. 局部的 将保留一个包含传入消息 ID 的数据库
消息,以便检测重复项。 根据您的配置,此数据库
将采用 ndbm 或 Berkeley db 格式。
- -信息 switch 可用于将任意参数传递给子进程 局部的
可以代表您调用。
- -冗长 切换原因 局部的 提供有关标准输出进度的信息。 这
-调试 switch 在 stderr 上产生更详细的调试输出。 这些标志很有用
在创建和调试您的“。邮件派送”文件,因为它们允许您查看
决定和行动 局部的 正在接受,以及检查您的语法错误
“。邮件派送“档案。
留言 / 信息 转让 经纪人
大多数现代 MTA 包括 发邮件, 后缀 和 进出口 支持 .forward 文件
指导传入的邮件。 您应该包括该行
“| /usr/lib/mh/slocal -user 用户名”
在您的主目录中的 .forward 文件中。 这将导致您的 MTA 调用 局部的
在消息到达时代表您。
- 邮件派送 文件
“”。邮件派送” 文件控制如何 局部的 过滤并传递收到的邮件。 每个
此文件的行由五个字段组成,以空格或逗号分隔。 自从
尊重双引号,这些字符可以包含在单个参数中
用双引号将整个参数括起来。 双引号可以包含在
在它前面加一个反斜杠。 以“#”开头的行和空行将被忽略。
“中每一行的格式。邮件派送”文件是:
头 模式 行动 导致 绳子
头:
要搜索的标题字段的名称(例如 To、Cc 或 From)
图案。 这是可能存在的消息头中的任何字段。
还定义了以下特殊字段:
资源 带外发送者信息
地址 用于导致交付给收件人的地址
默认 这匹配 仅由 如果消息尚未送达
* 这总是匹配
模式:
要在指定标头字段中匹配的字符序列。 匹配是大小写-
不敏感,但不使用正则表达式。
行动:
为传递消息而采取的操作。 当消息被传递时,一个
添加了“Delivery-Date: date”标题,指示消息的日期和时间
已交付。
摧毁
此操作始终会成功。
文件, MBOX或 >
将消息附加到由命名的文件中 绳子. 该消息被附加到
mbox (uucp) 格式的文件。 这是大多数其他邮件客户端使用的格式
(例如mailx、elm)。 如果消息可以附加到文件中,那么这
行动成功。
毫米波
相同 文件,但始终使用 MMDF 邮箱格式附加消息。
管 or |
将消息作为标准输入通过管道传递给名为的命令 绳子, 使用
伯恩壳 sh 来解释字符串。 在将字符串提供给
shell,它使用以下内置变量进行扩展:
$(sender) 带外发件人信息
$(address) 用于导致交付给收件人的地址
$(size) 消息的大小(以字节为单位)
$(reply-to) 消息的“Reply-To:”或“From:”字段
$(info) 指定的带外信息
管道 or ^
像 管, 而是直接执行命令,内置变量后
扩展,无需外壳的帮助。 这个动作可以用来避免
引用您的 shell 可能会解释的特殊字符。
夹 or +
将消息存储在 核磁共振 文件夹命名为 绳子. 目前这是处理
通过管道将消息传递给 核磁共振 程序 存储库,虽然这可能会改变
未来。
导致:
指示应如何执行操作:
A 执行操作。 如果操作成功,则认为该消息
交付。
R 执行操作。 无论操作的结果如何,消息都不是
视为已送达。
? 仅当邮件尚未送达时才执行该操作。 如果行动
成功,则认为消息已送达。
N 仅在消息未送达且前一个消息未送达时执行操作
行动成功。 如果此操作成功,则认为该消息
交付。
交付文件总是被完全读取,因此可以进行多次匹配并
可以采取多种措施。
安全性 of 寄送地址 档
为了防止出现安全问题,“。邮件派送” 文件必须由以下任一方拥有
用户或 root 用户,并且只能由所有者写入。 如果不是这种情况,则
文件未读取。
如果“。邮件派送” 文件无法找到,或不执行传递
消息,然后 局部的 将在以下位置检查全局交付文件 /etc/nmh/邮件传递.
根据相同的规则读取该文件。 此文件必须由 root 拥有并且必须
只能由 root 写入。
如果无法找到全局交付文件或不执行交付该文件的操作
消息,然后执行到用户的邮件投递的标准传递。
例如: 寄送地址 文件
总而言之,这是一个示例交付文件:
#
# nmh slocal 的.maildelivery 文件
#
# 空行和以“#”开头的行将被忽略
#
# 字段模式操作结果字符串
#
# 将“收件人:”行中带有 foobar 的邮件归档到文件 foobar.log
到 foobar 文件 foobar.log
# 将消息从 coleman 管道传输到程序消息存档
来自 coleman 管道 A /bin/message-archive
# “nmh-workers”邮件列表中的任何内容都被放入
# 它自己的文件夹,如果还没有归档
到 nmh-workers 文件夹? nmh-workers
# 主题中包含 Unix 的任何内容都放入
# unix-mail 文件
主题 unix 文件 一个 unix-mail
# 我不想读史蒂夫的邮件,所以销毁它
从史蒂夫摧毁A -
# 将尚未匹配的任何内容放入邮箱
默认文件? 邮箱
# 总是运行 rcvtty
* - 管道 R /usr/lib/mh/rcvtty
子流程 环境
当一个进程被调用时,它的环境是:用户/组ID设置为接收者的
身份证件; 工作目录是收件人的主目录; umask 是 0077; 这
进程没有/dev/tty; 标准输入设置为消息; 标准输出和
诊断输出设置为 /dev/null; 所有其他文件描述符都已关闭; 这
环境变量 $ USER, $ HOME, $壳牌 设置得当,没有其他环境
变量存在。
该过程有一定的时间来执行。 如果进程没有退出
在此限度内,该进程将在极端偏见下终止。 大量的
时间计算为 ((size / 60) + 300) 秒,其中 size 是字节数
消息(允许的最长时间为 30 分钟)。
在确定操作是否成功时,会参考进程的退出状态。 一个
退出状态为零表示操作成功。 任何其他退出状态(或异常
终止)表示动作失败。
为了避免任何时间限制,您可以实施一个流程,该流程开始于
叉()-ing。 父项会立即返回适当的值,子项
可以继续,做任何它想做的事情。 这种做法是
如果父级要返回零退出状态,则有点冒险。 如果父母是
将返回非零退出状态,那么这种方法可以加快交付速度
进入你的邮箱。
使用 onworks.net 服务在线使用 slocalmh