名 前
procmail − 自 律 型 メ ー ル プ ロ セ ッ サ
書 式
procmail
[−ptoY] [−f fromwhom]
[parameter=value | rcfile] ...
procmail [−toY] [−f
fromwhom] [−a argument] ...
−d recipient ...
procmail [−ptY] −m
[parameter=value] ... rcfile
[argument] ....br procmail −v
説 明
取 り 敢 え ず す ぐ 始 め た い 場 合 は 、 後 の 備 考 を 参 照 さ れ た い 。
procmail は 、 メ ー ル の 到 着 後 .forward フ ァ イ ル の 仕 組 み を 通 じ て た だ ち に 自 動 起 動 さ れ る だ ろ う 。 あ る い は 、 シ ス テ ム 管 理 者 が イ ン ス ト ー ル し た 場 合 は 、 メ ー ラ 内 部 か ら 直 接 起 動 さ れ る こ と も あ る (訳 注 : 原 文 は mailer と 書 か れ て い る が 、 こ こ で は MUA で は な く MTA を 指 し て い る も の と 推 測 す る )。 procmail は 起 動 す る と 、 ま ず い く つ か の 環 境 変 数 を デ フ ォ ル ト 値 に 設 定 す る 。 そ れ か ら EOF (End Of File; フ ァ イ ル の 終 端 ) に 行 き 当 た る ま で 、 標 準 入 力 か ら メ ー ル メ ッ セ ー ジ を 読 み 込 み 、 ヘ ッ ダ ー と 本 文 を 分 離 す る 。 そ の 後 、 コ マ ン ド ラ イ ン に 引 数 が 指 定 さ れ て い な け れ ば 、 $HOME/.procmailrc と い う 名 前 の フ ァ イ ル を 探 し 始 め る 。 こ の フ ァ イ ル 内 の 処 理 レ シ ピ に 従 っ て 、 到 着 し た メ ー ル メ ッ セ ー ジ は 適 切 な フ ォ ル ダ (及 び そ の 他 ) に 配 送 さ れ る 。 も し rcfile が 見 つ か ら な い か 、 rcfile の 処 理 が 終 わ っ た ら 、 procmail は メ ー ル を シ ス テ ム の デ フ ォ ル ト の メ ー ル ボ ッ ク ス に 保 存 す る 。
rcfile が 存 在 せ ず 、 さ ら に コ マ ン ド ラ イ ン に −p も 指 定 さ れ て い な い 場 合 、 /etc/procmailrc フ ァ イ ル が 存 在 す れ ば 、 procmail は $HOME/.procmailrc を 読 み 込 む 前 に 、 こ の フ ァ イ ル に 書 か れ て い る コ マ ン ド を 解 釈 す る 。 /etc/procmailrc を 作 成 す る と き は 十 分 に 注 意 を 払 わ な け れ ば な ら な い 。 な ぜ な ら 、 状 況 に よ っ て は 、 こ の フ ァ イ ル の 解 釈 は root 権 限 で 実 行 さ れ る 場 合 が あ り え る か ら で あ る (も ち ろ ん $HOME/.procmailrc の 場 合 は そ の よ う な こ と は な い )
procmail は 、 suid root さ れ て い る か 、 或 は root 権 限 で 動 作 し て い る 場 合 、 機 能 拡 張 さ れ 、 下 位 互 換 性 の あ る メ ー ル 配 送 エ ー ジ ェ ン ト と し て 動 作 で き る よ う に な る 。 ま た 、 procmail は 汎 用 の メ ー ル フ ィ ル タ と し て も 使 え る 。 つ ま り 、 (元 々 は 一 般 的 な 目 的 の メ ー ル フ ィ ル タ だ っ た が ) 特 別 な sendmail の ル ー ル を 使 用 し て procmail を 実 行 で き る よ う に す る 仕 組 み が 設 け ら れ た の で あ る 。
rcfile の フ ォ ー マ ッ ト は procmailrc(5) マ ニ ュ ア ル ペ ー ジ で 詳 細 に 解 説 さ れ て い る 。 重 み つ き ス コ ア リ ン グ 手 法 に つ い て は procmailsc(5) に 詳 し い 説 明 が あ る 。
rcfile の レ シ ピ の 例 は procmailex(5) マ ニ ュ ア ル ペ ー ジ を 参 照 さ れ た い 。 シ グ ナ ル
TERMINATE 直 ち に 終 了 し 、 メ ー ル を キ ュ ー に 戻 す 。 | |
HANGUP 直 ち に 終 了 し 、 メ ー ル を 送 信 元 へ 送 り 返 す 。 | |
INTERRUPT 直 ち に 終 了 し 、 メ ー ル を 送 信 元 へ 送 り 返 す 。 | |
QUIT 直 ち に 終 了 し 、 ユ ー ザ に は 何 も 通 知 せ ず に メ ー ル を 消 去 す る 。 | |
ALARM 強 制 的 に 時 間 切 れ で 終 了 さ せ る |
( TIMEOUT を 参 照 さ れ た い )。
USR1 |
VERBOSE=off と 同 じ 意 味 。 |
|||
USR2 |
VERBOSE=on と 同 じ 意 味 。 |
オ プ シ ョ ン
−v バ ー ジ ョ ン 番 号 と コ ン パ イ ル 時 の 環 境 設 定 を 表 示 し て 終 了 す る 。 | |
−p 古 い 環 境 を す べ て 保 存 す る 。 |
procmail は 通 常 、 起 動 時 に TZ を 除 く す べ て の 環 境 変 数 の 値 を 消 去 す る 。 但 し 、 ど の よ う な 場 合 に お い て も : procmail が 内 包 す る あ ら ゆ る デ フ ォ ル ト 値 は 同 一 名 の 既 存 の 環 境 変 数 よ り 優 先 さ れ る 。 す な わ ち 、 procmail は 既 に 定 義 さ れ て い る 同 名 の 環 境 変 数 に は 全 く お 構 い な く 、 procmail の デ フ ォ ル ト 値 に て そ れ ら を 適 切 に 上 書 き す る 。 procmail で 予 め 設 定 さ れ て い る 環 境 変 数 の 一 覧 に つ い て は 、 procmailrc(5) を 参 照 の こ と 。 −p と −m が 両 方 指 定 さ れ て い る 場 合 は 、 予 め 設 定 す る 環 境 変 数 は LOGNAME、 HOME、 SHELL、 ORGMAIL お よ び MAILDIR だ け に 限 定 さ れ る 。 (訳 注 : procmail の 通 常 動 作 は 、 TZ 以 外 の 親 プ ロ セ ス の 環 境 変 数 を 全 削 除 す る と 共 に 、 自 身 の 動 作 に か か わ る 環 境 変 数 を 多 数 「 上 書 き 」 設 定 す る 。 −p オ プ シ ョ ン が 指 定 さ れ る と 、 procmail は 自 身 の 動 作 に か か わ る 5つ の 環 境 変 数 の み を 設 定 し 、 そ れ 以 外 の 親 プ ロ セ ス に て 設 定 さ れ て い る 環 境 変 数 を 削 除 し な い 。 結 果 と し て 親 プ ロ セ ス の 環 境 が 保 持 さ れ る 。 )
−t |
procmail を フ ェ ー ル ソ フ ト に す る 。 つ ま り 、 ユ ー ザ が 指 定 し た ど の 配 送 先 に も procmail が メ ー ル を 配 送 で き な い 場 合 、 メ ー ル は バ ウ ン ス せ ず (配 送 エ ラ ー メ ー ル と し て 送 り 返 さ れ ず ) メ ー ル キ ュ ー に 戻 る 。 そ の 後 し ば ら く し て か ら 再 度 配 送 を 試 み る 。 |
−f fromwhom
fromwhom を 送 信 者 (sender)に し て 、 先 頭 の ’From ’ 行 を 再 作 成 す る (−f の 代 わ り に 、 今 で は 使 わ れ な く な っ て い る が −r が 使 用 で き る )。 fromwhom が ’−’ 1個 だ け の 場 合 、 procmail は ’From ’ 行 の タ イ ム ス タ ン プ の 更 新 の み 行 う (こ れ は タ イ ム ス タ ン プ が 存 在 す る 場 合 で あ る 。 な け れ ば 新 た に 作 成 す る )。
−o 誰 に も |
’From ’ 行 の 生 成 を 許 可 さ せ な い で 、 単 に 偽 物 を 上 書 き す る 。 | ||
−Y 従 来 の |
Berkeley mailbox フ ォ ー マ ッ ト を 想 定 し 、 Content−Length: |
フ ィ ー ル ド は す べ て 無 視 す る 。
−a 引
数 こ の オ プ シ
ョ ン は 、 $1 に コ
マ ン ド ラ イ ン
引 数 を 設 定 す
る 。 後 続 す る
−a 引 数 は そ
れ ぞ れ 次 の 番
号 の 変 数 ($2、 $3、
他 ) に 設 定 さ れ
る 。 こ の オ プ
シ ョ ン で procmail に
メ タ 情 報 を 渡
す こ と が で き
る 。 通 常 、 sendmail
メ ー ラ ル ー ル
か ら $@x 情 報 を 渡
す こ と に 用 い
ら れ る 。
−d recipient ... こ れ は
明 示 的 な 配 送
モ ー ド を 有 効
に す る 。 配 送
は ロ ー カ ル ユ
ー ザ recipient へ 行
わ れ る 。 も ち
ろ ん 、 こ れ は
procmail が root 権 限 を 備
え る 場 合 (或 は
procmail が 受 取 人 の euid
及 び egid で 動 作 し
て い る 場 合 ) に
の み 可 能 で あ
る 。 procmail は 指 定
さ れ た 受 取 人
に setuid さ れ 、 受 取
人 に よ り 引 数
の な い 状 態 で
起 動 さ れ た か
の よ う に メ ー
ル を 配 送 す る
。 (す な わ ち 、
rcfile が 見 つ か ら な
い 場 合 、 配 送
は 通 常 の メ ー
ル の よ う に 行
わ れ る )。 こ の
オ プ シ ョ ン は
−p と は 互 換 性
が な い 。
−m |
procmail を 汎 用 の メ ー ル フ ィ ル タ に す る 。 こ の モ ー ド で は rcfile を コ マ ン ド ラ イ ン で 一 つ 指 定 し な け れ ば な ら な い 。 rcfile に 後 続 す る 引 数 に 制 限 は な い 。 rcfile が 後 方 参 照 の な い /etc/procmailrcs/ で 始 ま る 絶 対 パ ス で あ る (す な わ ち 、 親 デ ィ レ ク ト リ が 指 定 で き な い ) 場 合 、 セ キ ュ リ テ ィ の 侵 害 が な い 場 合 の み procmailは rcfile (ま た は シ ン ボ リ ッ ク リ ン ク ) の 所 有 者 の ユ ー ザ 属 性 に な る 。 こ の オ プ シ ョ ン の よ り 詳 細 な 使 用 法 は 下 記 の 例 を 参 照 さ れ た い 。 引 数 に ’=’ が 入 っ て い る 場 合 は 、 す べ て 環 境 変 数 へ の 値 の 割 り 当 て と 見 な す 。 デ フ ォ ル ト 値 が 割 り 当 て ら れ た 後 に 、 こ の 割 り 当 て が I<全 て >評 価 さ れ 、 そ の 後 に 最 初 の rcfile が オ ー プ ン さ れ る 。 |
そ の 他 の 引 数 は す べ て rcfile の パ ス と 見 な さ れ る 。 (こ の パ ス は 絶 対 パ ス か 、 ま た は ’./’ で 始 ま っ て い れ ば 現 在 の デ ィ レ ク ト リ か ら の 相 対 パ ス の い ず れ か で あ る 。 そ の 他 の す べ て の 相 対 パ ス は 、 −m オ プ シ ョ ン を 使 用 し な い 限 り $HOME か ら の 相 対 パ ス で あ る 。 −m オ プ シ ョ ン を 使 用 し た 場 合 、 す べ て の 相 対 パ ス は 現 在 の デ ィ レ ク ト リ か ら の 相 対 パ ス と な る 。 ) そ し て procmail は 、 コ マ ン ド ラ イ ン で 最 初 に 見 つ か っ た rcfile を 使 用 し て 起 動 す る 。 先 行 す る 引 数 に 指 定 さ れ て い る rcfile に 合 致 す る HOST 指 示 (HOST−directive) を 有 し な い 場 合 、 ま た は 引 数 が 存 在 し な い 場 合 に の み 、 コ マ ン ド ラ イ ン 上 に て 次 に 指 定 さ れ て い る rcfile が 一 つ だ け 解 析 さ れ る 。
rcfile を 何 も 指 定 し な い 場 合 は $HOME/.procmailrc を 検 索 す る 。 rcfile が 見 つ か ら な く て も 、 環 境 変 数 の デ フ ォ ル ト 設 定 と コ マ ン ド ラ イ ン で 指 定 さ れ た 値 に 従 っ て 処 理 を 続 行 す る 。
例
rcfile の レ シ ピ の 例 は procmailex(5) の マ ニ ュ ア ル ペ ー ジ を 参 照 さ れ た い 。 rcfile の ち ょ っ と し た サ ン プ ル は 、 後 述 す る 備 考 に を 参 照 の こ と 。
sendmail.cf の 文 法 を 多 少 な り と も 知 っ て い る シ ス テ ム 管 理 者 以 外 は 、 こ れ 以 降 の 「 例 」 は 読 み 飛 ば し て 頂 き た い 。
−m オ プ シ ョ ン は 、 sendmail.cf フ ァ イ ル の ル ー ル か ら procmail を 呼 び 出 す 際 に 使 わ れ る の が 一 般 的 で あ る 。 こ の よ う に す る に は 、 自 分 の sendmail.cf フ ァ イ ル に 、 (procmail を 立 ち 上 げ る ’local’ メ ー ラ は お そ ら く 既 に 存 在 す る だ ろ う が 、 そ れ に 加 え て ) ’procmail’ メ ー ラ を 別 途 追 加 す る と 都 合 が 良 い 。 こ の よ う な ’procmail’ メ ー ラ を 作 成 す る に は 、 次 の よ う に す れ ば い い だ ろ う :
Mprocmail,
P=/usr/bin/procmail, F=mSDFMhun, S=11, R=21,
A=procmail −m $h $g $u こ う す
れ ば 、 (大 抵 の
場 合 ruleset 0 に あ る )
以 下 の よ う な
ル ー ル を 使 用
し て 、 メ ー ル
を procmail メ ー ラ を
通 じ て フ ィ ル
タ で き る 。 (た
だ し 、 ル ー ル
を 継 続 し て 記
述 す る た め に
行 頭 に タ ブ が
あ る こ と と 、
コ メ ン ト を 分
離 す る た め に
タ ブ が あ る こ
と に 注 意 。 )
R$*<@some.where>$*
$#procmail $@/etc/procmailrcs/some.rc
$:$1 [AT] some.procmail$2
R$*<@$*.procmail>$*
$1<@$2>$3 Already filtered, map back そ し
て/etc/procmailrcs/some.rc は 次 の
よ う に 簡 単 に
な る :
SENDER =
"<$1>" # 空 の 送 信
者 ア ド レ ス を
修 正 SHIFT = 1 # $@ か ら 除
去 :
0 # 全 て の ゴ ミ メ
ー ル を 放 り 込
む * ^Subject:.*junk /dev/null :
0 w # そ れ 以 外 の 全
て の メ ー ル を
通 過 さ せ る ! −oi
−f "$SENDER" "$@"
/etc/procmailrcs/some.rc フ ァ イ ル の 中 か ら メ ー ル を 送 信 す る と き に は 特 に 注 意 さ れ た い 。 最 初 の ル ー ル に 合 致 す る ア ド レ ス に メ ー ル を 再 度 送 信 す る と 、 メ ー ル の 無 限 ル ー プ を 引 き 起 こ す こ と に な る 。
フ ァ イ ル
/etc/passwd 受 取 人 の |
LOGNAME, HOME, SHELL の 各 変 数 の デ フ ォ ル |
ト を 設 定 す る 。
/var/spool/mail/$LOGNAME シ ス テ ム メ ー ル ボ ッ ク ス ; シ ス テ ム メ ー ル ボ ッ ク ス と そ れ を 格 納 す る す ぐ 上 の デ ィ レ ク ト リ が 存 在 し な け れ ば 、 両 方 と も procmail が 起 動 す る 度 毎 に 作 成 さ れ る 。
/etc/procmailrc 初 期 の グ ロ ー バ ル |
rcfile |
|||
/etc/procmailrcs/ |
rcfile に 特 権 を 与 え る パ ス
$HOME/.procmailrc デ フ ォ ル ト の |
rcfile |
/var/spool/mail/$LOGNAME.lock シ ス テ ム メ ー ル ボ ッ ク ス の lockfile (procmail が 自 動 的 に 使 用 す る こ と は な い 。 但 し 、 変 数 $DEFAULT が /var/spool/mail/$LOGNAME と 等 し く 、 且 つ procmail が $DEFAULT へ 配 送 す る 場 合 を 除 く 。 )
/usr/sbin/sendmail デ フ ォ ル ト の メ ー ル 転 送 ソ フ ト |
||
_????’hostname’ |
procmail が 一 時 的 に 作 成 す る 、 大 き さ が 0 バ イ ト で ’フ ァ イ ル 名 が 重 複 し な い ’ フ ァ イ ル
関 連 項 目
procmailrc(5), procmailsc(5), procmailex(5), sh(1), csh(1), mail(1), mailx(1), binmail(1), uucp(1), aliases(5), sendmail(8), egrep(1), grep(1), biff(1), comsat(8), lockfile(1), formail(1), cron(1)
診 断 (エ ラ ー メ ッ セ ー ジ 一 覧 )
Autoforwarding
mailbox found (自 動 転 送 メ
ー ル ボ ッ ク ス
が 見 つ か っ た )
シ ス テ ム メ ー
ル ボ ッ ク ス に suid
ま た は sgid ビ ッ ト
が セ ッ ト さ れ
て い る 場 合 、
procmail は 当 該 メ ー
ル ボ ッ ク ス へ
配 送 し て は い
け な い こ と を
示 す べ く 、 EX_NOUSER
で 終 了 す る 。
Bad substitution of "x" ("x" の
不 正 な 置 換 ) 有
効 な 環 境 変 数
名 が 指 定 さ れ
て い な い 。
Closing brace unexpected (閉 じ 括
弧 が 検 出 さ れ
な い ) 開 き 括 弧
に 対 応 す る 閉
じ 括 弧 が な い
(ブ ロ ッ ク が ネ
ス ト し て い る
)。
Conflicting options (オ プ シ ョ
ン が 矛 盾 す る )
有 効 な 組 み 合
わ せ に な っ て
い な い オ プ シ
ョ ン が あ る 。
Conflicting x suppressed (矛 盾 す
る x は 削 除 さ れ
た ) フ ラ グ x は 当
該 レ シ ピ の 他
の フ ラ グ と 併
存 で き な い 。
Couldn’t create "x" ("x" を
作 成 で き な い )
シ ス テ ム メ ー
ル ボ ッ ク ス が
見 つ か ら ず 、
作 成 で き な い
。 ま た は 作 成
さ れ な い 。
Couldn’t create maildir part "x" (maildir
"x" を 作 成 で き
な い )
maildir フ ォ ル ダ "x" の 作 成 に 必 要 な 1つ ま た は 複 数 の サ ブ デ ィ レ ク ト リ が な く 、 ま た procmail は そ の サ ブ デ ィ レ ク ト リ を 作 成 で き な い 。
Couldn’t create or rename
temp file "x" (一 時 フ ァ
イ ル "x" の 作 成
ま た は 名 前 変
更 が で き な い
) デ ィ レ ク ト リ
フ ォ ル ダ "x" へ
の 配 送 の 仕 組
み に エ ラ ー が
発 生 し た 。
Couldn’t determine implicit lockfile from
"x" ("x" か ら 暗
黙 の lockfile が 決 定
で き な い
) リ ダ イ レ ク タ
’>>’ が な い の
で 、 単 純 に
’$LOCKEXT’ を ロ ー カ
ル ロ ッ ク フ ァ
イ ル の フ ァ イ
ル 名 と し て 使
用 す る 。
Couldn’t read "x" ("x" が
読 め な い )
procmail が rcfile を 開 く こ と が で き な か っ た か 、 rcfile が 通 常 の フ ァ イ ル で な か っ た か 、 或 は procmail が 最 大 番 号 の フ ァ イ ル 名 の フ ァ イ ル を 探 そ う と し て も MH デ ィ レ ク ト リ を 開 く こ と が で き な か っ た 。
Couldn’t unlock
"x" ("x" の ロ ッ
ク が 解 除 で き
な い ) ロ ッ ク フ
ァ イ ル が 既 に
消 滅 し て い る
か 、 ま た は ロ
ッ ク フ ァ イ ル
が あ る デ ィ レ
ク ト リ の 書 き
込 み 権 限 が な
い 。
Deadlock attempted on "x" ("x" の
デ ッ ド ロ ッ ク
未 遂 ) 当 該 レ シ
ピ で 指 定 さ れ
て い る ロ ー カ
ル ロ ッ ク フ ァ
イ ル は 、 ま だ
有 効 に 機 能 し
続 け て い る $LOCKFILE
と 同 じ で あ る
。
Denying special privileges for "x" ("x"
へ の 特 別 な 権
限 を 拒 否 ) セ キ
ュ リ テ ィ 侵 害
が 見 つ か っ た
(例 : −p オ プ シ
ョ ン ま た は コ
マ ン ド ラ イ ン
の 変 数 割 り 当
て )か 、 procmail が 不
十 分 な 権 限 し
か 持 っ て い な
い の で 、 procmail は rcfile
に 付 随 す る 識
別 情 報 (ユ ー ザ ID
及 び グ ル ー プ ID)
に な ら な い 。
(訳 注 : rcfile の ユ ー
ザ ID と グ ル ー プ ID
に setuid / setgid し な い 。
setuid / setgid に 関 す る セ
キ ュ リ テ ィ 上
の 問 題 に 対 応
す る エ ラ ー メ
ッ セ ー ジ 。 )
Descriptor "x" was not open (フ ァ
イ ル 記 述 子 "x"
を 開 け ら れ な
か っ た )
procmail は 起 動 し た が 、 stdin, stdout ま た は stderr と 接 続 さ れ な か っ た 。 (お そ ら く セ キ ュ リ テ ィ が 破 壊 さ れ そ う に な っ た た め で あ ろ う 。 )
Enforcing stricter permissions
on "x" ("x" の パ ー
ミ ッ シ ョ ン を
よ り 厳 し く す
る
) 受 取 人 の シ ス
テ ム メ ー ル ボ
ッ ク ス が 安 全
で な い こ と が
わ か っ た の で
、 安 全 性 を 向
上 さ せ た 。
Error while writing to "x" ("x" へ
書 き 込 み を す
る 際 に エ ラ ー
が 発 生 し た ) サ
ブ デ ィ レ ク ト
リ が 存 在 し な
い か 、 書 き 込
み 許 可 が な い
か 、 パ イ プ が
壊 れ て し ま っ
た か 、 ま た は
デ ィ ス ク が 一
杯 で あ る 。
Exceeded LINEBUF (LINEBUF 超 過 ) バ
ッ フ ァ オ ー バ
ー フ ロ ー が 検
出 さ れ た 。 LINEBUF
が 小 さ す ぎ る
。 PROCMAIL_OVERFLOW が 設 定
さ れ た 。
MAILDIR is not an absolute path (MAILDIR が 絶
対 パ ス で な い
。 )
MAILDIR path too long (MAILDIR パ ス が
長 す ぎ る 。 )
ORGMAIL is not an absolute path (ORGMAIL が 絶
対 パ ス で な い
。 )
ORGMAIL path too long (ORGMAIL パ ス が
長 す ぎ る 。 )
default rcfile is not an absolute path (デ フ
ォ ル ト の rcfile が 絶
対 パ ス で な い
。
)
default rcfile path too long (デ フ ォ
ル ト の rcfile へ の パ
ス が 長 す ぎ る
。 ) 指 定 さ れ た
項 目 の フ ル パ
ス は 、 展 開 す
る と LINEBUF よ り も
長 か っ た か 、
或 は そ の フ ル
パ ス の 先 頭 が
フ ァ イ ル セ パ
レ ー タ で は な
か っ た 。
Excessive output quenched from "x" ("x"
か ら の 過 剰 な
出 力 が 抑 止 さ
れ た ) プ ロ グ ラ
ム ま た は フ ィ
ル タ "x" の 出 力
が procmail の LINEBUF の サ
イ ズ を 越 え た
の で 、 溢 れ た
残 り の 分 は 破
棄 さ れ 、 PROCMAIL_OVERFLOW
が セ ッ ト さ れ
た 。
Extraneous x ignored (無 関 係 な x
は 無 視 さ れ た )
こ の レ シ ピ で
使 用 し て い る
ア ク シ ョ ン 行
、 ま た は 他 の
フ ラ グ が あ る
の で 、 フ ラ グ x
は 無 意 味 に な
る 。
Failed forking "x" ( "x" の fork
に 失 敗 し た ) プ
ロ セ ス テ ー ブ
ル が 一 杯 で あ
る (と 共 に NORESRETRY が
使 い 尽 く さ れ
た )。
Failed to execute "x" ("x" の
実 行 に 失 敗 し
た ) プ ロ グ ラ ム
が パ ス に な い
か 、 実 行 可 能
で は な い 。
Forced unlock denied on "x" ("x"
へ の ア ン ロ ッ
ク の 強 行 に 失
敗 し た ) ロ ッ ク
フ ァ イ ル "x"
が 存 在 す る デ
ィ レ ク ト リ に
書 き 込 み 許 可
が な い か 、 ま
た は 複 数 の procmail
が 全 く 同 時 に
ロ ッ ク を 強 行
し よ う と し て
い る 。
Forcing lock on "x" ("x" の
ロ ッ ク を 強 行
す る ) タ イ ム ア
ウ ト し た た め
、 ロ ッ ク フ ァ
イ ル "x" は 強
制 的 に 削 除 さ
れ る 。 (LOCKTIMEOUT も
合 わ せ て 参 照
さ れ た い )
Incomplete recipe (不 完 全 な
レ シ ピ ) レ シ ピ
の 開 始 は 見 つ
か っ た が 、 レ
シ ピ の 終 了 が
見 つ か ら な い
ま ま EOF で 行 き 詰
ま っ て し ま っ
た 。
Insufficient privileges (不 十 分 な
権 限 )
procmail が 配 送 モ ー ド で 動 作 す る に は 、 procmail に root 権 限 が 必 要 で あ る か 、 procmail の (e)uid お よ び (e)gid が 正 し い も の で な け れ ば な ら な い 。 メ ー ル は バ ウ ン ス す る 。
Invalid regexp "x"
(無 効 な 正 規 表
現 "x") 正 規 表 現
"x" に は エ ラ ー
が あ る (多 く の
場 合 、 括 弧 が
不 足 し て い た
り 余 計 だ っ た
り す る )。
Kernel−lock failed (カ ー ネ
ル ロ ッ ク が 失
敗 し た ) カ ー ネ
ル が サ ポ ー ト
す る ロ ッ ク 機
能 を 試 み て い
る 間 に 、 そ れ
ら 機 能 呼 び 出
し の う ち の 1つ
が 失 敗 し た (通
常 OS エ ラ ー を 示
す )。 procmail は こ の
エ ラ ー を 無 視
し 、 処 理 を 続
行 す る 。
Kernel−unlock failed (カ ー ネ
ル ア ン ロ ッ ク
が 失 敗 し た ) 上
記 説 明 を 参 照
。
Lock failure on "x" ("x" の
ロ ッ ク 失 敗 ) こ
の エ ラ ー は 、
適 切 で な い (そ
し て 不 正 な ) ロ
ッ ク フ ァ イ ル
名 を 指 定 し て
い る か 、 ま た
は 権 限 が 不 足
し て い た り 存
在 し な い サ ブ
デ ィ レ ク ト リ
を 指 定 し た た
め に ロ ッ ク フ
ァ イ ル が 作 成
で き な か っ た
場 合 に の み 生
じ る 。
Lost "x" ("x" が 消 失
し た )
procmail は 自 身 の ク ロ ー ン を 作 ろ う と し た が 、 rcfile "x" が 見 つ か ら な か っ た (そ の rcfile が 削 除 さ れ た か 、 或 は rcfile が 相 対 パ ス で 指 定 さ れ て い て 、 前 回 procmail が そ の rcfile を 開 い て か ら デ ィ レ ク ト リ を 変 更 し た か の い ず れ か で あ る )。
Missing action (動
作 の 不 足 ) 現 在
の レ シ ピ が 不
完 全 で あ る こ
と が わ か っ た
。
Missing closing brace (閉 じ 括 弧
不 足 ) ネ ス ト し
て い る ブ ロ ッ
ク の 開 始 は あ
る が 終 了 が 無
い 。
Missing name (名 前 の 不 足
)
−f オ プ シ ョ ン に は 特 別 な 引 数 が 必 要 で あ る 。
Missing argument (引 数 の 不 足 )
−a オ プ シ ョ ン が 指 定 さ れ た が 、 引 数 が 忘 れ ら れ て い る 。
Missing rcfile (rcfile が な い )
−m オ プ シ ョ ン が 指 定 さ れ て い る が 、 −m オ プ シ ョ ン は 引 数 と し て rcfile 名 が 必 要 で あ る 。
Missing recipient (受 取 人 が な い )
−d オ プ シ ョ ン を 指 定 し た か 、 ま た は 別 の 名 前 で procmail が 呼 び 出 さ れ た 。 そ の 際 、 引 数 と し て 1つ 以 上 の 受 取 人 が 必 要 で あ る 。
No space left to finish writing
"x" ("x" の 書 き
込 み を 終 了 さ
せ る だ け の 容
量 が な い
)
"x" を 含 む フ ァ イ ル シ ス テ ム に 、 配 送 メ ッ セ ー ジ を フ ァ イ ル に 書 き 込 む だ け の 十 分 な 空 き 容 量 が な い 。
Out of memory (メ
モ リ 不 足 ) シ ス
テ ム に ス ワ ッ
プ ス ペ ー ス が
不 足 し て い る
(そ し て NORESRETRY が 使
い 尽 く さ れ た
)。
Processing continued (処 理 が 続
行 さ れ て い る )
コ マ ン ド ラ イ
ン で 認 識 さ れ
な い オ プ シ ョ
ン は 無 視 さ れ
、 そ の ま ま 処
理 を 続 行 す る
。
Program failure (nnn) of "x" (プ ロ
グ ラ ム "x" が 失
敗 し た (nnn))
procmail か ら 起 動 さ れ た プ ロ グ ラ ム が 、 EXIT_SUCCESS (=0) で は な く nnn を 返 し た ; nnn が 負 な ら 、 そ の プ ロ グ ラ ム が 死 ん だ こ と を 示 す シ グ ナ ル で あ る 。
Quota exceeded while writing
"x" ("x" の 書 き
込 み 中 に デ ィ
ス ク の 割 当 量
を 超 過 し た
)
"x" を 含 む そ の フ ァ イ ル シ ス テ ム に お け る 、 受 取 人 に 対 す る フ ァ イ ル サ イ ズ の 制 限 の 為 に 、 メ ッ セ ー ジ を フ ァ イ ル へ 配 送 す る こ と が 許 さ れ な い 。
Renaming bogus "x"
into "x" (間 違 っ て
い る 名 前 "x" を
"x" に 変 更 す る )
受 取 人 の シ ス
テ ム メ ー ル ボ
ッ ク ス が 誤 り
だ っ た の で 、
procmail は 回 避 動 作
を 行 っ た 。
Rescue of unfiltered data succeeded/failed (フ
ィ ル タ さ れ て
い な い デ ー タ
の 救 出 に 成 功
し た / 失 敗 し た )
(procmail か ら 起 動 し
た ) フ ィ ル タ の
実 行 に 失 敗 し
た の で 、 procmail は
メ ー ル を フ ィ
ル タ に 渡 す 以
前 の テ キ ス ト
に 戻 そ う と し
た 。
Skipped: "x" ("x" は ス
キ ッ プ さ れ た )
rcfile の "x" に つ い て は (文 法 エ ラ ー に 因 り ) 何 も 行 わ れ ず 無 視 さ れ た 。
Suspicious rcfile "x" (rcfile "x" は 疑 わ し い )
rcfile の 所 有 者 が 受 取 人 も し く は root の い ず れ で も な い か 、 rcfile 自 体 ま た は こ れ が 存 在 す る デ ィ レ ク ト リ が 誰 で も 書 き 込 み 可 能 に な っ て い る か 、 こ の rcfile が デ フ ォ ル ト の rcfile ($HOME/.procmailrc) で あ る 場 合 は そ の フ ァ イ ル 自 体 ま た は フ ァ イ ル を 含 む デ ィ レ ク ト リ が グ ル ー プ 書 き 込 み 可 能 で あ る (group writable) か の い ず れ か で あ っ た 。 (し た が っ て rcfile は 使 わ れ な か っ た )
Terminating prematurely whilst
waiting for ... (... を 待 っ て
い る 間 の 中 途
終 了
)
procmail は .. を 待 っ て い る 間 に シ グ ナ ル を 受 信 し た 。
Timeout, terminating
"x" (時 間 切 れ :
"x" の 終 了 ) プ ロ
グ ラ ム ま た は
フ ィ ル タ "x" は
実 行 中 に 時 間
切 れ と な っ た
。
Timeout, was waiting for "x" ("x"
を 待 っ て い た
が 時 間 切 れ に
な っ た ) プ ロ グ
ラ ム 或 は フ ィ
ル タ の 実 行 中
、 ま た は フ ァ
イ ル "x" の 処 理
中 に 時 間 切 れ
と な っ た 。 "x"
が プ ロ グ ラ ム
ま た は フ ィ ル
タ の 場 合 、 も
は や 動 作 し て
い な い よ う に
見 え た 。
Truncated file to former size (フ ァ イ
ル を 元 の サ イ
ズ に 切 り 詰 め
た ) フ ァ イ ル の
配 送 が 成 功 し
な か っ た の で
、 そ の フ ァ イ
ル は 元 の サ イ
ズ に 切 り 詰 め
ら れ た 。
Truncating "x" and retrying lock ("x"
の 切 り 詰 め と
ロ ッ ク の 再 試
行 )
"x" は 有 効 な フ ァ イ ル 名 で は な い か 。 ま た は フ ァ イ ル が 空 で は な い 。
Unable to treat as directory "x" ("x" を デ ィ レ ク ト リ と し て 扱 え な い )
"x" の 末 尾 が MH ま た は maildir フ ォ ル ダ で あ る こ と を 示 し て い る か 、 或 は そ れ ら の い ず れ か へ リ ン ク さ れ て い る 二 番 目 の フ ォ ル ダ と し て 記 述 さ れ て い た が 、 "x" は 既 に 存 在 し て い て 、 且 つ デ ィ レ ク ト リ で は な い 。 (訳 注 : メ ー ル ボ ッ ク ス 名 の 末 尾 が "/" で 終 る 場 合 は maildir と し て 、 "/." で 終 る 場 合 は MH と し て 扱 わ れ る 。 詳 細 は procmailrc (5) を 参 照 。 )
Unexpected EOL (予
期 し な い EOL) 引 用
符 を 閉 じ 忘 れ
て い る か 、 EOF の
回 避 を し 忘 れ
て い る 。 (訳 注 :
原 文 及 び ソ ー
ス 中 の エ ラ ー
メ ッ セ ー ジ に
は EOL (End Of Line: 行 末 ) と
書 か れ て い る
が 、 ソ ー ス を
参 酌 す る と EOF (End Of
File: フ ァ イ ル 終 端
) の 間 違 い と 推
測 す る 。 )
Unknown user "x" (未 知 の
ユ ー ザ "x") 指 定
さ れ た 受 取 人
に 対 応 す る uid が
な い 。
拡 張 診 断
VERBOSE 変 数 に 値 を 設 定 す る と 、 拡 張 診 断 機 能 を 有 効 /無 効 に で き る 。
[pid] time & date |
procmail の pid と タ イ ム ス タ ン プ で あ る 。 procmail が 診 断 を ロ グ 記 録 す る 時 に は い つ で も 生 成 さ れ 、 少 な く と も 最 後 の タ イ ム ス タ ン プ か ら 1秒 は 経 過 し て い る 。 |
Acquiring kernel−lock (カ ー ネ ル ロ ッ ク の 獲 得 )
procmail は 、 直 前 に 開 い た フ ァ イ ル (記 述 子 ) を カ ー ネ ル ロ ッ ク し よ う と し て い る 。
Assigning "x"
("x" の 割 り 当 て
) 環 境 変 数 割 り
当 て 。
Assuming identity of the recipient, VERBOSE=off (受
取 人 の ユ ー ザ
属 性 を 想 定 す
る 。
VERBOSE=off) 特 権 が あ れ
ば そ れ ら を す
べ て 破 棄 し 、
拡 張 診 断 機 能
を 自 動 的 に 無
効 に す る 。
Bypassed locking "x" ("x" の
ロ ッ ク 回 避 )
procmail は メ ー ル ス プ ー ル デ ィ レ ク ト リ へ ア ク セ ス で き な か っ た の で 、 カ ー ネ ル の ロ ッ ク 機 能 し か あ て に な ら な か っ た 。
Executing "x"
("x" の 実 行 ) プ
ロ グ ラ ム "x" を
起 動 す る 。 シ
ェ ル を 介 在 さ
せ ず に procmail か ら
直 接 "x" を 起 動
す る 場 合 、 procmail
は 引 数 と 引 数
の 間 に カ ン マ
を 挿 入 し て 引
数 の 区 切 り を
示 す 。
HOST mismatched "x" (こ の ホ
ス ト の ホ ス ト
名 は "x" と 一 致
し な い ) こ の ホ
ス ト の ホ ス ト
名 を "x" と 認 識
し た 。 HOST に は 何
か 余 計 な も の
が 含 ま れ て い
た 。 (訳 注 : ホ ス
ト 名 の 検 証 結
果 に 関 す る メ
ッ セ ー ジ 。 )
Locking "x" ("x" を ロ
ッ ク す る ) ロ ッ
ク フ ァ イ ル "x"
を 作 成 す る 。
Linking to "x" ("x" に リ
ン ク す る ) デ ィ
レ ク ト リ フ ォ
ル ダ 間 に ハ ー
ド リ ン ク を 作
成 す る 。
Match on "x" ("x" で 一
致 す る ) 条 件 が
一 致 し た 。
Matched "x" (一 致 し た
"x")
"x" が MATCH に 割 り 当 て ら れ た 。
No match on "x"
("x" に は 何 も 一
致 し な い ) 条 件
が 一 致 せ ず 、
レ シ ピ は 読 み
飛 ば さ れ た 。
Non−zero exitcode (nnn) by "x"
("x" は 0 以 外 の
終 了 コ ー ド (nnn) で
終 了 し た
) レ シ ピ の 条 件
文 と し て 、 或
は ’W’ フ ラ グ の
を 用 い る ア ク
シ ョ ン 行 と し
て procmail か ら 起 動
さ れ た プ ロ グ
ラ ム は 、 EXIT_SUCCESS (=0)
で は な い 終 了
コ ー ド nnn を 返 し
て 終 了 し た 。
こ の 使 い 方 は
全 く 予 期 し な
い 状 態 で は な
い こ と を 示 す
。 (訳 注 : す な わ
ち 、 プ ロ グ ラ
ム の 終 了 コ ー
ド を 条 件 分 岐
に 用 い る レ シ
ピ に お い て は
、 こ の メ ッ セ
ー ジ が 出 て も
必 ず し も 何 ら
か の 異 常 を 示
す も の で は な
い 。 )
Notified comsat: "$LOGNAME@offset:file" (comsat
の 通 知 :
"$LOGNAME@offset:file")
’file’ の ’offset’ の 位 置 に 、 ユ ー ザ $LOGNAME 宛 て の メ ー ル が 到 着 し た と 、 comsat/biff へ 通 知 し た 。 (訳 注 : biff は メ ー ル の 到 着 を 通 知 す る ユ ー テ ィ リ テ ィ 。 comsat は biff サ ー バ 。 各 々 biff.1 及 び comsat.1 を 参 照 。 )
Opening "x" ("x" を 開 い て い る )
Opening "x" ("x" の オ ー プ ン ) 追 加 の た め に フ ァ イ ル "x" を 開 く (訳 注 : append mode: 追 加 モ ー ド )
Rcfile: "x" |
rcfile は "x" に 変 更 さ れ た 。 |
Reiterating kernel−lock
(カ ー ネ ル ロ ッ
ク の 繰 り 返 し )
い く つ か の ロ
ッ ク 方 式 を 試
行 し て い る 最
中 に 、 そ の う
ち の 一 つ が 失
敗 し た 。 そ の
試 行 の す べ て
が 間 を お か ず
連 続 し て 成 功
す る ま で 、 procmail
は カ ー ネ ル ロ
ッ ク を 繰 り 返
す 。
Score: added newtotal "x" (ス コ
ア : 追 加 の 結 果
、 新 し い 合 計
値 は "x" と な っ
た
) こ の 条 件 に よ
っ て ス コ ア に
点 が 追 加 さ れ
た 。 ス コ ア は
’新 し い 合 計 値
’ に な っ た 。
Unlocking "x" ("x" の ロ
ッ ク 解 除 ) ロ ッ
ク フ ァ イ ル "x"
を 再 び 削 除 す
る 。
警 告
シ ス テ ム メ ー ル ボ ッ ク ス 以 外 の 任 意 の メ ー ル ボ ッ ク ス に 対 し て 自 分 の メ ー ル シ ェ ル を 起 動 す る 場 合 は 、 そ の 前 に lockfile(1) を 使 用 す る シ ェ ル ス ク リ プ ト を 作 成 す る こ と 。 (も ち ろ ん 、 自 分 の メ ー ル シ ェ ル が (ロ ー カ ル で あ る か グ ロ ー バ ル で あ る か に か か わ ら ず ) rcfile で 指 定 し た ロ ッ ク フ ァ イ ル と 同 じ も の を 使 用 し て い る 場 合 は 別 で あ る 。 ) 万 が 一 procmail を 自 身 の 正 常 終 了 前 に 絶 対 kill し な け れ ば な ら な い 場 合 は 、 ま ず 最 初 に 通 常 の kill コ マ ン ド を 試 し て み る こ と 。 (つ ま り kill −9 で は な い 。 終 了 コ ー ド に つ い て は シ グ ナ ル を 参 照 の こ と ) さ も な い と 、 ロ ッ ク フ ァ イ ル が い く つ か 削 除 さ れ な い 場 合 が あ る 。
−t オ プ シ ョ ン は 注 意 し て 使 用 す る こ と 。 (例 え ば rcfile に 誤 り が あ る た め に ) procmail が 何 度 も メ ー ル の 配 送 失 敗 を 繰 り 返 す と 、 シ ス テ ム の メ ー ル キ ュ ー が 溢 れ る 可 能 性 が あ る 。 こ う な る と 、 ロ ー カ ル の postmaster と 他 の ユ ー ザ の 両 方 に 迷 惑 を か け る だ ろ う 。
/etc/procmailrc フ ァ イ ル は root 権 限 で 実 行 さ れ る 場 合 が あ る の で 、 こ の フ ァ イ ル に 書 き 込 む 内 容 に は 十 分 に 注 意 す る こ と 。 SHELL は 現 在 の 受 取 人 の シ ェ ル と 同 じ に な る た め 、 procmail で シ ェ ル を 起 動 す る 必 要 が あ る 場 合 は 、 最 初 に こ の 変 数 を 何 ら か の 無 難 な 値 に 設 定 し て お く と よ い 。 DROPPRIVS も 参 照 の こ と 。
/etc/procmailrcs/ に あ る フ ァ イ ル に 対 し て chown(1) が 許 可 さ れ て い れ ば 、 そ の フ ァ イ ル の 現 在 の 所 有 者 は 、 そ の フ ァ イ ル を rootに で も (他 の 誰 に で も ) chown で き る こ と を 心 に 留 め て お く こ と 。 そ こ で 、 セ キ ュ リ テ ィ を 最 大 限 強 化 す る た め 、 こ の デ ィ レ ク ト リ は 必 ず root だ け が 実 行 可 能 で あ る こ と を 確 認 す る こ と 。 自 分 の ド メ イ ン 宛 て の 全 て の メ ー ル に 対 し て POP ア カ ウ ン ト が 1つ し か な い よ う な 、 1つ の メ ー ル ボ ッ ク ス を 複 数 の ユ ー ザ が 共 有 す る 場 合 、 procmail は 適 切 な ツ ー ル で は な い 。 使 用 し て い る MTA を ど う に か し て 設 定 し て 、 そ の メ ッ セ ー ジ の 宛 先 を procmail に 伝 え る い く つ か の ヘ ッ ダ を 受 取 人 デ ー タ の エ ン ベ ロ ー プ に 追 加 す れ ば そ の よ う な 共 有 も 可 能 に な る だ ろ う 。 し か し こ れ は 通 常 正 し い 行 為 で は な い 。 お そ ら く 、 そ の MTA に 「 仮 想 ユ ー ザ テ ー ブ ル 」 機 能 が 備 わ っ て い る か ど う か を 調 べ る か 、 Fetchmail の ’multidrop’ 機 能 を 調 べ る 方 が い い 。
バ グ
procmail は 強 制 的 に ロ ッ ク フ ァ イ ル を 削 除 し た 後 、 新 し い ロ ッ ク フ ァ イ ル を 作 成 す る 前 に $SUSPEND 秒 待 つ 。 こ れ は 、 古 く な っ た ロ ッ ク フ ァ イ ル を 削 除 し よ う と す る 他 の プ ロ セ ス が 、 新 た に 作 成 さ れ た ロ ッ ク フ ァ イ ル を 誤 っ て 削 除 し な い よ う に す る 為 で あ る 。
procmail は 、 暴 走 し た フ ィ ル タ を 終 了 す る 為 に 通 常 の TERMINATE シ グ ナ ル を 使 用 す る 。 し か し 、 そ の シ グ ナ ル に フ ィ ル タ が 応 答 す る か ど う か は 確 認 し な い 。 そ れ に procmail が シ グ ナ ル を 送 る の は そ の フ ィ ル タ 自 体 で あ り 、 そ の フ ィ ル タ の ど の 子 プ ロ セ ス に も シ グ ナ ル は 送 ら な い 。 複 数 行 に 渡 る 、 長 過 ぎ る Content−Length: フ ィ ー ル ド は 正 し く 処 理 さ れ な い 。 複 数 行 に 渡 る 一 つ の ヘ ッ ダ に 含 ま れ る 改 行 は 、 マ ッ チ ン グ の 際 に は そ れ を そ の ま ま 1個 の 空 白 と し て 扱 う の で は な く 、 無 視 さ れ る だ ろ う 。
そ の 他
メ ー ル ヘ ッ ダ に Content−Length: フ ィ ー ル ド が あ り 、 −Y オ プ シ ョ ン が 指 定 さ れ て い な け れ ば 、 procmail は そ の フ ィ ー ル ド に 指 定 さ れ て い る サ イ ズ を 正 し い サ イ ズ に な る よ う に 調 整 す る 。 そ の 際 、 procmail は Content−Length: フ ィ ー ル ド の フ ィ ー ル ド 幅 を 変 更 し な い 。
Content−Length: フ ィ ー ル ド が な い 場 合 、 ま た は −Y オ プ シ ョ ン が 指 定 さ れ て い る 状 態 で procmail が 通 常 の メ ー ル フ ォ ル ダ に メ ー ル を 追 加 す る 場 合 、 メ ッ セ ー ジ 本 文 中 で 消 印 (postmark) と 間 違 え そ う な 全 て の 行 の 行 頭 に は ’>’ が 追 加 さ れ 、 こ れ に よ り 偽 造 メ ー ル ヘ ッ ダ を 無 害 化 す る 。 こ の 消 印 は 、 以 下 の 正 規 表 現 を 用 い て 検 索 す る 。 (訳 注 : 消 印 (postmark) は エ ン ベ ロ ー プ From を 示 す 行 の こ と で あ る 。 mbox 形 式 メ ー ル ボ ッ ク ス に メ ッ セ ー ジ を 配 送 す る 際 に は 、 識 別 文 字 列 "From " と 混 同 し な い よ う に 、 本 文 中 で 行 頭 に "From" が あ る 場 合 は 、 該 当 す る 全 て の 行 の 行 頭 に 引 用 符 ’>’ を 付 加 す る 。 な お 、 引 用 符 の 追 加 は MH フ ォ ル ダ 形 式 と maildir フ ォ ル ダ 形 式 で は 行 わ れ な い 。 )
’\nFrom ’ 明 示 的 配 送 モ ー ド で 使 用 さ れ る 配 送 先 の ユ ー ザ 名 が /etc/passwd に な け れ ば 、 procmail は 明 示 的 配 送 モ ー ド に な っ て い な か っ た も の と し て 処 理 を 継 続 す る 。 明 示 的 配 送 モ ー ド に な っ て お ら ず 、 且 つ 実 行 中 の procmail の uid に 対 応 す る /etc/passwd エ ン ト リ が な い 場 合 、 HOME , LOGNAME , SHELL 及 び ORGMAIL の 各 変 数 の デ フ ォ ル ト 値 は 、 そ れ ぞ れ / , #uid , /bin/sh , /tmp/dead.letter に な る 。 明 示 的 配 送 モ ー ド の 時 、 メ ッ セ ー ジ ヘ ッ ダ の 先 頭 に ’From ’ 行 が な い 場 合 、 procmail は こ れ を 生 成 す る 。 ’From ’行 が 既 に あ る 場 合 は 、 procmail は そ れ に は 手 を 付 け ず に そ の ま ま 残 す 。 procmail を 起 動 し た ユ ー ザ の ユ ー ザ 或 は グ ル ー プ ID が root, daemon, uucp, mail, x400, network, list, slist, lists or news の い ず れ で も な く 、 そ れ で も 新 し い ’From ’ 行 を 生 成 な い し 受 け 入 れ る 必 要 が あ る 場 合 は 、 偽 造 メ ー ル と 区 別 し や す く す る た め に procmail は ’>From ’ 行 を 追 加 す る 。 セ キ ュ リ テ ィ 上 の 理 由 か ら 、 procmail が 使 用 す る rcfile は 絶 対 パ ス か $HOME か ら の 相 対 パ ス 指 定 で あ り 、 且 つ そ の 所 有 者 が 受 取 人 ま た は root で あ り 、 且 つ rcfile 自 体 と こ れ を 含 む デ ィ レ ク ト リ の 両 方 共 誰 で も 書 き 込 み で き る 状 態 で あ っ て は な ら な い (訳 注 : world writable: other (そ の 他 ) の 書 き 込 み ビ ッ ト (w) が 立 っ て い る 状 態 を 指 す 。 man chmod 参 照 。 ) 更 に 、 $HOME/.procmailrc フ ァ イ ル の 場 合 は 、 同 一 グ ル ー プ ユ ー ザ が 書 き 込 み 可 能 で あ っ て は な ら な い し 、 ま た $HOME デ ィ レ ク ト リ が 同 一 グ ル ー プ か ら 書 き 込 み 可 能 で あ っ て は な ら な い 。
/var/spool/mail/$LOGNAME が 偽 の メ ー ル ボ ッ ク ス で あ る (す な わ ち 、 メ ー ル ボ ッ ク ス の 所 有 者 が 受 取 人 で な い か 、 メ ー ル ボ ッ ク ス が 書 き 込 み で き な い か 、 メ ー ル ボ ッ ク ス が シ ン ボ リ ッ ク リ ン ク 或 は ハ ー ド リ ン ク で あ る ) 場 合 、 procmail は 起 動 時 に そ の メ ー ル ボ ッ ク ス を ’BOGUS.$LOGNAME.’ で 始 ま り 、 inode−sequence−code で 終 わ る フ ァ イ ル 名 に 変 更 し よ う と す る 。 も し こ れ が で き な い と わ か る と 、 ORGMAIL に は 初 期 値 が 設 定 さ れ な い 。 結 果 と し て 、 適 切 な rcfile の な い 状 態 で メ ー ル の 配 送 が 行 わ れ な く な る 。
/var/spool/mail/$LOGNAME は 正 規 の メ ー ル ボ ッ ク ス だ が 、 パ ー ミ ッ シ ョ ン が 甘 す ぎ る 場 合 は 、 procmail は こ れ を 修 正 す る 。 procmail に こ の よ う な パ ー ミ ッ シ ョ ン 操 作 を さ せ な い よ う に す る に は 、 メ ー ル ボ ッ ク ス に 必 ず u+x ビ ッ ト を 立 て る こ と 。 メ ー ル を デ ィ レ ク ト リ 、 MH フ ォ ル ダ 、 ま た は maildir フ ォ ル ダ に 配 送 す る 際 に は 、 procmail の 複 数 起 動 に よ る 混 乱 を 防 ぐ 為 に ロ ッ ク フ ァ イ ル を 使 う 必 要 は な い 。
MH フ ォ ル ダ へ の 配 送 は 、 通 常 の デ ィ レ ク ト リ や mailbox へ の 配 送 よ り も 若 干 の 時 間 を 要 す る 。 こ れ は procmail が (す ぐ に 使 え る フ ァ イ ル 名 を 採 用 し な い で ) MH フ ォ ル ダ 内 で フ ァ イ ル 名 と し て 使 え る 次 の 番 号 を 検 索 し な け れ ば な ら な い か ら で あ る 。
−t オ プ シ ョ ン が 指 定 さ れ て い な い 限 り 、 procmail は 一 般 的 な 失 敗 に 関 し て EX_CANTCREAT を 返 す 。 −t オ プ シ ョ ン が 指 定 さ れ て い る 場 合 に は EX_TEMPFAIL を 返 す 。
egrep 風 の ヘ ッ ダ 検 索 を よ り 良 く 行 う 為 に 、 procmail は 複 数 行 に わ た る 全 て の ヘ ッ ダ フ ィ ー ル ド を 連 結 し て 一 行 に す る 。 但 し 、 こ れ は 内 部 的 な 処 理 で あ り 、 メ ー ル を 配 送 す る 際 に は 、 改 行 は 元 の 状 態 に 戻 る 。
(た と え ば procmail が 違 う 名 前 で リ ン ク さ れ て い て 、 そ の 違 う 名 前 で 起 動 さ れ る 場 合 の よ う に ) 起 動 す る procmail の 名 前 が ’procmail’ で 始 ま っ て い な い 場 合 、 そ の procmail は 明 示 的 配 送 モ ー ド で 起 動 さ れ 、 (−d オ プ シ ョ ン が 指 定 さ れ た 時 と 同 様 に ) コ マ ン ド ラ イ ン の 引 数 に 受 取 人 名 が 必 要 に な る 。
Comsat/biff 通 知 は udp を 使 用 し て 行 わ れ る 。 こ の 通 知 は 、 procmail が 通 常 の ロ グ フ ァ イ ル の エ ン ト リ を 生 成 し た 時 に 一 回 送 出 さ れ る 。 通 知 メ ッ セ ー ジ は 下 記 の 拡 張 フ ォ ー マ ッ ト (ま た は 最 後 の 配 送 先 が フ ァ イ ル 以 外 の 時 の フ ォ ー マ ッ ト と 酷 似 し た も の ) で あ る :
$LOGNAME@offset_of_message_in_mailbox:absolute_path_to_mailbox
procmail が メ ー ル の 配 送 の 際 に フ ァ イ ル を 開 く 時 は 、 procmail は 常 に fcntl(2) に よ る カ ー ネ ル ロ ッ ク の 方 法 を 使 用 す る 。
procmail は NFS 環 境 で も 使 用 可 能 で 、 8 ビ ッ ト 問 題 は な い 。 (訳 注 : 8bit clean: デ ー タ の 8ビ ッ ト 目 を 遮 る こ と な く 透 過 的 に デ ー タ 転 送 を 行 え る こ と を 指 す 。 )
備 考
procmail を コ マ ン ド ラ イ ン オ プ シ ョ ン −h ま た は −? に て 起 動 す る と 、 コ マ ン ド ラ イ ン ヘ ル プ と レ シ ピ フ ラ グ の ク イ ッ ク リ フ ァ レ ン ス の ペ ー ジ が 表 示 さ れ る 。 メ ー ル フ ィ ル タ (特 に procmail)に 関 し て 、 初 心 者 向 け に 優 れ た FAQ が あ る : こ れ は Nancy McGough <nancym [AT] ii.com> が 保 守 し て お り 、 mail−server [AT] rtfm.edu に 以 下 の 内 容 の 本 文 を メ ー ル す れ ば 入 手 で き る (訳 注 : http://www.faqs.org/faqs/mail/filtering−faq/ か ら も 閲 覧 可 能 )。
send usenet/news.answers/mail/filtering−faq も しprocmail が 当 該 ホ ス ト の デ フ ォ ル ト の メ ー ル 配 送 エ ー ジ ェ ン ト と し て イ ン ス ト ー ル さ れ て い な け れ ば (シ ス テ ム 管 理 者 に 問 い 合 わ せ る こ と )、 自 分 宛 の メ ー ル が 到 着 し た 時 に 起 動 さ れ る こ と を 確 認 す る 必 要 が あ る 。 こ の 場 合 、 自 分 の $HOME/.forward に 以 下 の 行 を 書 い て お く こ と (こ の フ ァ イ ル は 誰 で も 読 み 込 み 可 能 で な け れ ば な ら な い こ と に 注 意 )。 そ の 際 、 必 ず シ ン グ ル ク ォ ー ト と ダ ブ ル ク ォ ー ト を 含 む こ と 。 さ ら に 、 自 分 の サ イ ト で smrsh (the SendMail Restricted SHell) が 動 い て い る と 分 か っ て い れ ば 別 だ が 、 そ う で な け れ ば 、 こ の パ ス は 絶 対 パ ス に す る こ と 。
"|exec /usr/bin/procmail"
procmail は 、 既 に 一 杯 に な っ て い る シ ス テ ム メ ー ル ボ ッ ク ス の 後 処 理 に も 使 用 で き る 。 $HOME/.forward フ ァ イ ル を 使 い た く な い と か 、 使 用 で き な い 場 合 に こ れ が 役 に 立 つ 場 合 が あ る 。 (こ の 場 合 は 以 下 の ス ク リ プ ト を cron(1) か ら 定 期 的 に 呼 び 出 し て も 良 い し 、 メ ー ル を 読 み 始 め る 際 に 必 ず 起 動 す る よ う に し て も 良 い 。 )
#!/bin/sh
ORGMAIL=/var/spool/mail/$LOGNAME
if cd $HOME
&&
test −s $ORGMAIL &&
lockfile −r0 −l1024 .newmail.lock 2>/dev/null
then
trap "rm −f .newmail.lock" 1 2 3 13 15
umask 077
lockfile −l1024 −ml
cat $ORGMAIL >>.newmail &&
cat /dev/null >$ORGMAIL
lockfile −mu
formail −s procmail <.newmail &&
rm −f .newmail
rm −f .newmail.lock
fi
exit 0
$HOME/.procmailrc
の ち ょ っ と し
た サ ン プ ル :
PATH=/usr/local/bin:/usr/bin:/bin
MAILDIR=$HOME/Mail #you’d better make sure it exists
DEFAULT=$MAILDIR/mbox #completely optional
LOGFILE=$MAILDIR/from #recommended :
0:
* ^From.*berg
from_me :
0
* ^Subject:.*Flame
/dev/null そ の 他 の rcfile
レ シ ピ の 例 は
procmailex(5) マ ニ ュ ア
ル ペ ー ジ を 参
照 さ れ た い 。
SOURCE
こ の プ ロ グ ラ ム は procmail mail−processing−package (v3.22) の 一 部 で あ り 、 http://www.procmail.org/ ま た は ftp.procmail.org の pub/procmail/ で 入 手 で き る 。
MAILINGLIST
procmail パ ッ ケ ー ジ の 全 て の プ ロ グ ラ ム に 関 連 し た 質 問 へ の メ ー リ ン グ リ ス ト が あ る :
<procmail−users [AT] procmail.org>
質 問 /回 答 の 投
稿 用 ア ド レ ス
。
<procmail−users−request [AT] procmail.org>
参 加 申 込 用 の
ア ド レ ス 。 新
し い バ ー ジ ョ
ン や オ フ ィ シ
ャ ル パ ッ チ に
つ い て の 情 報
を 常 時 入 手 し
た い 場 合 に は
、 以 下 の メ ー
ル ア ド レ ス に
参 加 申 込 を す
る こ と :
procmail−announce−request [AT] procmail.org
(こ れ は 購 読 専 用 の メ ー リ ン グ リ ス ト で あ る )。
著 者
Stephen R. van den Berg
Philip A. Guenther