Manpages

名 前

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

<srb [AT] cuci.nl>

Philip A. Guenther

<guenther [AT] sendmail.com>