OSDN Git Service

procmail: Generate draft and release pages from ja.po.
[linuxjm/jm.git] / manual / procmail / draft / man1 / procmail.1
1 .de  Id
2 .ds Rv \\$3
3 .ds Dt \\$4
4 ..
5 .\"if n .pl +(135i-\n(.pu)
6 .Id $Id: procmail.1,v 1.1 2003/06/16 17:06:40 motoki Exp $
7 .\"*******************************************************************
8 .\"
9 .\" This file was generated with po4a. Translate the source file.
10 .\"
11 .\"*******************************************************************
12 .\"
13 .\" Japanese Version Copyright (C)COOL WEB 1998
14 .\"          ALL RIGHTS RESERVED
15 .\" Modified Sun Jun 10 13:27:00 JST 2002
16 .\"         by MATSUDA Yoh-ichi (matsuda@palnet.or.jp)
17 .\" Modified Sun Jul 18 20:27:00 JST 2004
18 .\"         by MATSUDA Yoh-ichi (yoh@flcl.org)
19 .\" Thanks to:
20 .\"   MIURA Hiroshi <miura@da-cha.org>
21 .\"   OKANO Takayoshi <kano@na.rim.or.jp>
22 .\"   HAGA Yasufumi <yasufumi.haga@nifty.com>
23 .\"if n .pl +(135i-\n(.pu)
24 .TH PROCMAIL 1 \*(Dt BuGless 
25 .rn SH Sh
26 .de  SH
27 .br
28 .ne 11
29 .Sh "\\$1"
30 ..
31 .rn SS Ss
32 .de  SS
33 .br
34 .ne 10
35 .Ss "\\$1"
36 ..
37 .rn TP Tp
38 .de  TP
39 .br
40 .ne 9
41 .Tp \\$1
42 ..
43 .rn RS Rs
44 .de  RS
45 .na
46 .nf
47 .Rs
48 ..
49 .rn RE Re
50 .de  RE
51 .Re
52 .fi
53 .ad
54 ..
55 .de  Sx
56 .PP
57 .ne \\$1
58 .RS
59 ..
60 .de  Ex
61 .RE
62 .PP
63 ..
64 .na
65 .SH 名前
66 procmail \- 自律型メールプロセッサ
67 .SH 書式
68 \fBprocmail\fP [\fB\-ptoY\fP] [\fB\-f \fP\fIfromwhom\fP]
69 .if  n .ti +0.5i
70 [\fIparameter\fP\fB=\fP\fIvalue \fP|\fI rcfile\fP] \&.\|.\|.
71 .br
72 \fBprocmail\fP [\fB\-toY\fP] [\fB\-f \fP\fIfromwhom\fP] [\fB\-a \fP\fIargument\fP] \&.\|.\|.
73 .if  n .ti +0.5i
74 \fB\-d\fP \fIrecipient\fP \&.\|.\|.
75 .br
76 \fBprocmail\fP [\fB\-ptY\fP] \fB\-m\fP [\fIparameter\fP\fB=\fP\fIvalue\fP] \&.\|.\|.  \fIrcfile\fP
77 .if  n .ti +0.5i
78 [\fIargument\fP] \&.\|.\|..br \fBprocmail\fP \fB\-v\fP
79 .ad
80 .SH 説明
81 取り敢えずすぐ始めたい場合は、後の \fB備考\fP を参照されたい。
82 .PP
83 \fBprocmail\fP は、メールの到着後 \fB.forward\fP ファイルの仕組みを通じてただちに自動起動されるだろう。
84 あるいは、システム管理者がインストールした場合は、 メーラ内部から直接起動されることもある (訳注: 原文は mailer と書かれているが、ここでは
85 MUA ではなく MTA を指しているものと推測する)。 procmail は起動すると、まずいくつかの環境変数をデフォルト値に設定する。 それから
86 EOF (End Of File; ファイルの終端) に行き当たるまで、 標準入力からメールメッセージを読み込み、ヘッダーと本文を分離する。
87 その後、コマンドラインに引数が指定されていなければ、 \fB$HOME/.procmailrc\fP という名前のファイルを探し始める。
88 このファイル内の処理レシピに従って、到着したメールメッセージは適切なフォルダ (及びその他) に配送される。 もし rcfile が見つからないか、
89 rcfile の処理が終わったら、 procmail は メールをシステムのデフォルトのメールボックスに保存する。
90 .PP
91 rcfile が存在せず、さらにコマンドラインに \fB\-p\fP も指定されていない場合、 \fB/etc/procmailrc\fP
92 ファイルが存在すれば、procmail は $HOME/.procmailrc を読み込む前に、 このファイルに書かれているコマンドを解釈する。
93 /etc/procmailrc を作成するときは十分に注意を払わなければならない。 なぜなら、状況によっては、このファイルの解釈は root 権限で
94 実行される場合がありえるからである (もちろん $HOME/.procmailrc の場合はそのようなことはない)
95 .PP
96 procmail は、 suid root されているか、或は root 権限で動作している場合、
97 機能拡張され、下位互換性のあるメール配送エージェントとして動作できるようになる。
98 .PP
99 また、procmail は汎用のメールフィルタとしても使える。 つまり、(元々は一般的な目的のメールフィルタだったが) 特別な sendmail
100 のルールを使用して procmail を実行できるようにする仕組みが 設けられたのである。
101 .PP
102 rcfile のフォーマットは \fBprocmailrc\fP(5)  マニュアルページで詳細に解説されている。
103 .PP
104 重みつきスコアリング手法については \fBprocmailsc\fP(5) に詳しい説明がある。
105 .PP
106 rcfile のレシピの例は \fBprocmailex\fP(5)  マニュアルページを参照されたい。
107 .SS シグナル
108 .TP  1.2i
109 \fBTERMINATE\fP
110 直ちに終了し、メールをキューに戻す。
111 .TP 
112 \fBHANGUP\fP
113 直ちに終了し、メールを送信元へ送り返す。
114 .TP 
115 \fBINTERRUPT\fP
116 直ちに終了し、メールを送信元へ送り返す。
117 .TP 
118 \fBQUIT\fP
119 直ちに終了し、ユーザには何も通知せずにメールを消去する。
120 .TP 
121 \fBALARM\fP
122 強制的に時間切れで終了させる ( \fBTIMEOUT\fP を参照されたい)。
123 .TP 
124 \fBUSR1\fP
125 \fBVERBOSE\fP=off と同じ意味。
126 .TP 
127 \fBUSR2\fP
128 \fBVERBOSE\fP=on と同じ意味。
129 .SH オプション
130 .TP  0.5i
131 \fB\-v\fP
132 バージョン番号とコンパイル時の環境設定を表示して終了する。
133 .TP 
134 \fB\-p\fP
135 古い環境をすべて保存する。 procmail は通常、起動時に TZ を除くすべての環境変数の値を消去する。 但し、どのような場合においても:
136 procmail が内包するあらゆるデフォルト値は同一名の既存の環境変数より優先される。 すなわち、 procmail
137 は既に定義されている同名の環境変数には全くお構いなく、 procmail のデフォルト値にてそれらを適切に上書きする。 procmail
138 で予め設定されている環境変数の一覧については、 \fBprocmailrc\fP(5)  を参照のこと。 \-p と \-m
139 が両方指定されている場合は、予め設定する環境変数は LOGNAME、HOME、SHELL、ORGMAIL および MAILDIR だけに限定される。
140 (訳注: procmail の通常動作は、 TZ 以外の親プロセスの環境変数を全削除すると共に、自身の動作にかかわる環境変数を多数「上書き」設定する。
141 \-p オプションが指定されると、 procmail
142 は自身の動作にかかわる5つの環境変数のみを設定し、それ以外の親プロセスにて設定されている環境変数を削除しない。結果として親プロセスの環境が保持される。)
143 .TP 
144 \fB\-t\fP
145 procmail をフェールソフトにする。 つまり、ユーザが指定したどの配送先にも procmail がメールを配送できない場合、 メールはバウンスせず
146 (配送エラーメールとして送り返されず)  メールキューに戻る。 その後しばらくしてから再度配送を試みる。
147 .TP 
148 \fB\-f\fP\fI fromwhom\fP
149 \fIfromwhom\fP を送信者(sender)にして、先頭の `From ' 行を再作成する (\-f の代わりに、今では使われなくなっているが \-r
150 が使用できる)。 \fIfromwhom\fP が `\-' 1個だけの場合、procmail は `From ' 行のタイムスタンプの 更新のみ行う
151 (これはタイムスタンプが存在する場合である。なければ新たに作成する)。
152 .TP 
153 \fB\-o\fP
154 誰にも `From ' 行の生成を許可させないで、単に偽物を上書きする。
155 .TP 
156 \fB\-Y\fP
157 従来の Berkeley mailbox フォーマットを想定し、 \fBContent\-Length:\fP フィールドはすべて無視する。
158 .TP 
159 \fB\-a\fP\fI 引数\fP
160 このオプションは、 $1 にコマンドライン引数を設定する。 後続する \fB\-a\fP\fI 引数\fP はそれぞれ次の番号の変数 ($2、$3、他)
161 に設定される。 このオプションで procmail にメタ情報を渡すことができる。 通常、sendmail メーラルールから $@x
162 情報を渡すことに用いられる。
163 .TP 
164 \fB\-d\fP\fI recipient .\|.\|.\fP
165 これは明示的な配送モードを有効にする。 配送はローカルユーザ \fIrecipient\fP へ行われる。 もちろん、これは procmail が root
166 権限を備える場合 (或は procmail が 受取人の euid 及び egid で動作している場合) にのみ可能である。 procmail
167 は指定された受取人に setuid され、 受取人により引数のない状態で起動されたかのようにメールを配送する。 (すなわち、 rcfile
168 が見つからない場合、配送は通常のメールのように 行われる)。 このオプションは \fB\-p\fP とは互換性がない。
169 .TP 
170 \fB\-m\fP
171 procmail を汎用のメールフィルタにする。 このモードでは rcfile をコマンドラインで一つ指定しなければならない。 rcfile
172 に後続する引数に制限はない。 rcfile が後方参照のない \fB/etc/procmailrcs/\fP で始まる絶対パスである
173 (すなわち、親ディレクトリが指定できない) 場合、 セキュリティの侵害がない場合のみ procmailは rcfile (またはシンボリックリンク)
174 の所有者のユーザ属性になる。 このオプションのより詳細な使用法は下記の \fB例\fP を参照されたい。 引数に `='
175 が入っている場合は、すべて環境変数への値の割り当てと見なす。 デフォルト値が割り当てられた後に、この割り当てがI<全て>評価され、
176 その後に最初の rcfile がオープンされる。
177 .PP
178 その他の引数はすべて rcfile のパスと見なされる。 (このパスは絶対パスか、または `./' で始まっていれば
179 現在のディレクトリからの相対パスのいずれかである。 \fBその他のすべての相対\fP パスは、 \fB\-m\fP オプションを使用しない限り $HOME
180 からの相対パスである。 \fB\-m\fP オプションを使用した場合、すべての相対パスは現在のディレクトリからの 相対パスとなる。)  そして procmail
181 は、コマンドラインで最初に見つかった rcfile を使用して 起動する。 先行する引数に指定されている rcfile に合致する HOST 指示
182 (HOST\-directive) を有しない場合、または引数が 存在しない場合にのみ、コマンドライン上にて次に指定されている rcfile が
183 一つだけ解析される。
184 .PP
185 rcfile を何も指定しない場合は \fB$HOME/.procmailrc\fP を検索する。 rcfile
186 が見つからなくても、環境変数のデフォルト設定と コマンドラインで指定された値に従って処理を続行する。
187 .SH 例
188 rcfile のレシピの例は \fBprocmailex\fP(5)  のマニュアルページを参照されたい。 rcfile のちょっとしたサンプルは、後述する
189 \fB備考\fP にを参照のこと。
190 .PP
191 sendmail.cf の文法を多少なりとも知っているシステム管理者以外は、 これ以降の「例」は読み飛ばして頂きたい。
192 .PP
193 \fB\-m\fP オプションは、sendmail.cf ファイルのルールから procmail を呼び出す際に
194 使われるのが一般的である。このようにするには、自分の sendmail.cf ファイルに、 (procmail を立ち上げる `local'
195 メーラはおそらく既に存在するだろうが、 それに加えて)  `procmail' メーラを別途追加すると都合が良い。 このような `procmail'
196 メーラを作成するには、次のようにすればいいだろう:
197 .Sx 2
198 Mprocmail, P=/usr/bin/procmail, F=mSDFMhun, S=11, R=21,
199         A=procmail \-m $h $g $u
200 .Ex
201 こうすれば、 (大抵の場合 ruleset 0 にある) 以下のようなルールを使用して、 メールを procmail メーラを通じてフィルタできる。
202 (ただし、ルールを継続して記述するために行頭にタブがあることと、 コメントを分離するためにタブがあることに注意。)
203 .Sx 4
204 R$*<@some.where>$*
205         $#procmail $@/etc/procmailrcs/some.rc $:$1@some.where.procmail$2
206 R$*<@$*.procmail>$*
207         $1<@$2>$3       Already filtered, map back
208 .Ex
209 そして /etc/procmailrcs/some.rc は次のように簡単になる:
210 .Sx 9
211 SENDER = "<$1>" # 空の送信者アドレスを修正 SHIFT = 1 # $@ から除去
212
213 :0 # 全てのゴミメールを放り込む * ^Subject:.*junk /dev/null
214
215 :0 w # それ以外の全てのメールを通過させる ! \-oi \-f "$SENDER" "$@"
216 .Ex
217 /etc/procmailrcs/some.rc ファイルの中からメールを送信するときには 特に注意されたい。
218 最初のルールに合致するアドレスにメールを再度送信すると、メールの 無限ループを引き起こすことになる。
219 .SH ファイル
220 .TP  2.3i
221 \fB/etc/passwd\fP
222 受取人の LOGNAME, HOME, SHELL の各変数のデフォルトを設定する。
223 .TP 
224 \fB/var/spool/mail/$LOGNAME\fP
225 システムメールボックス; システムメールボックスとそれを格納するすぐ上のディレクトリが存在しなければ、 両方とも procmail
226 が起動する度毎に作成される。
227 .TP 
228 \fB/etc/procmailrc\fP
229 初期のグローバル rcfile
230 .TP 
231 \fB/etc/procmailrcs/\fP
232 rcfile に特権を与えるパス
233 .TP 
234 \fB$HOME/.procmailrc\fP
235 デフォルトの rcfile
236 .TP 
237 \fB/var/spool/mail/$LOGNAME.lock\fP
238 システムメールボックスのlockfile (procmail が自動的に使用することはない。
239 但し、変数 $DEFAULT が /var/spool/mail/$LOGNAME と等しく、且つ
240 procmail が $DEFAULT へ配送する場合を除く。)
241 .TP 
242 \fB/usr/sbin/sendmail\fP
243 デフォルトのメール転送ソフト
244 .TP 
245 \fB_????`hostname`\fP
246 procmail が一時的に作成する、大きさが 0 バイトで `ファイル名が重複しない' ファイル
247 .SH 関連項目
248 .na
249 .nh
250 \fBprocmailrc\fP(5), \fBprocmailsc\fP(5), \fBprocmailex\fP(5), \fBsh\fP(1),
251 \fBcsh\fP(1), \fBmail\fP(1), \fBmailx\fP(1), \fBbinmail\fP(1), \fBuucp\fP(1),
252 \fBaliases\fP(5), \fBsendmail\fP(8), \fBegrep\fP(1), \fBgrep\fP(1), \fBbiff\fP(1),
253 \fBcomsat\fP(8), \fBlockfile\fP(1), \fBformail\fP(1), \fBcron\fP(1)
254 .hy
255 .ad
256 .SH "診断 (エラーメッセージ一覧)"
257 .TP  2.3i
258 Autoforwarding mailbox found (自動転送メールボックスが見つかった)
259 システムメールボックスに suid または sgid ビットがセットされている場合、 procmail
260 は当該メールボックスへ配送してはいけないことを示すべく、 EX_NOUSER で 終了する。
261 .TP 
262 Bad substitution of "x" ("x" の不正な置換)
263 有効な環境変数名が指定されていない。
264 .TP 
265 Closing brace unexpected (閉じ括弧が検出されない)
266 開き括弧に対応する閉じ括弧がない(ブロックがネストしている)。
267 .TP 
268 Conflicting options (オプションが矛盾する)
269 有効な組み合わせになっていないオプションがある。
270 .TP 
271 Conflicting x suppressed (矛盾する x は削除された)
272 フラグ x は当該レシピの他のフラグと併存できない。
273 .TP 
274 Couldn't create "x" ("x" を作成できない)
275 システムメールボックスが見つからず、作成できない。または作成されない。
276 .TP 
277 Couldn't create maildir part "x" (maildir "x" を作成できない)
278 maildir フォルダ "x" の作成に必要な1つまたは複数のサブディレクトリが なく、また procmail はそのサブディレクトリを作成できない。
279 .TP 
280 Couldn't create or rename temp file "x" (一時ファイル "x" の作成または名前変更ができない)
281 ディレクトリフォルダ "x" への配送の仕組みにエラーが発生した。
282 .TP 
283 Couldn't determine implicit lockfile from "x" ("x" から暗黙の lockfile が決定できない)
284 リダイレクタ `>>' がないので、単純に `$LOCKEXT' をローカルロックファイルのファイル名として使用する。
285 .TP 
286 Couldn't read "x" ("x" が読めない)
287 procmail が rcfile を開くことができなかったか、 rcfile が通常のファイルでなかったか、 或は procmail
288 が最大番号のファイル名のファイルを探そうとしても MH ディレクトリを開くことができなかった。
289 .TP 
290 Couldn't unlock "x" ("x" のロックが解除できない)
291 ロックファイルが既に消滅しているか、またはロックファイルがあるディレクトリの書き込み 権限がない。
292 .TP 
293 Deadlock attempted on "x" ("x" のデッドロック未遂)
294 当該レシピで指定されているローカルロックファイルは、 まだ有効に機能し続けている $LOCKFILE と同じである。
295 .TP 
296 Denying special privileges for "x" ("x" への特別な権限を拒否)
297 セキュリティ侵害が見つかった (例: \fB\-p\fP オプションまたはコマンドラインの変数割り当て)か、 procmail
298 が不十分な権限しか持っていないので、 procmail は rcfile に付随する識別情報 (ユーザ ID 及びグループ ID) にならない。
299 (訳注: rcfile のユーザ ID とグループ ID に setuid / setgid しない。 setuid / setgid
300 に関するセキュリティ上の問題に対応するエラーメッセージ。)
301 .TP 
302 Descriptor "x" was not open (ファイル記述子 "x" を開けられなかった)
303 procmail は起動したが、 stdin, stdout または stderr と接続されなかった。
304 (おそらくセキュリティが破壊されそうになったためであろう。)
305 .TP 
306 Enforcing stricter permissions on "x" ("x" のパーミッションをより厳しくする)
307 受取人のシステムメールボックスが安全でないことがわかったので、 安全性を向上させた。
308 .TP 
309 Error while writing to "x" ("x" へ書き込みをする際にエラーが発生した)
310 サブディレクトリが存在しないか、書き込み許可がないか、パイプが壊れてしまったか、 またはディスクが一杯である。
311 .TP 
312 Exceeded LINEBUF (LINEBUF 超過)
313 バッファオーバーフローが検出された。LINEBUF が小さすぎる。 PROCMAIL_OVERFLOW が設定された。
314 .TP 
315 MAILDIR is not an absolute path (MAILDIR が絶対パスでない。)
316 .TP 
317 MAILDIR path too long (MAILDIR パスが長すぎる。)
318 .TP 
319 ORGMAIL is not an absolute path (ORGMAIL が絶対パスでない。)
320 .TP 
321 ORGMAIL path too long (ORGMAIL パスが長すぎる。)
322 .TP 
323 default rcfile is not an absolute path (デフォルトの rcfile が絶対パスでない。)
324 .TP 
325 default rcfile path too long (デフォルトの rcfile へのパスが長すぎる。)
326 指定された項目のフルパスは、展開すると LINEBUF よりも長かったか、或は そのフルパスの先頭がファイルセパレータではなかった。
327 .TP 
328 Excessive output quenched from "x" ("x" からの過剰な出力が抑止された)
329 プログラムまたはフィルタ "x" の出力が procmail の LINEBUF のサイズを越えたので、 溢れた残りの分は破棄され、
330 PROCMAIL_OVERFLOW がセットされた。
331 .TP 
332 Extraneous x ignored (無関係な x は無視された)
333 このレシピで使用しているアクション行、または他のフラグがあるので、 フラグ x は無意味になる。
334 .TP 
335 Failed forking "x" ( "x" の fork に失敗した)
336 プロセステーブルが一杯である (と共に NORESRETRY が使い尽くされた)。
337 .TP 
338 Failed to execute "x" ("x" の実行に失敗した)
339 プログラムがパスにないか、実行可能ではない。
340 .TP 
341 Forced unlock denied on "x" ("x" へのアンロックの強行に失敗した)
342 \fBロックファイル\fP "x" が存在するディレクトリに書き込み許可がないか、または複数の procmail が全く同時にロックを強行しようとしている。
343 .TP 
344 Forcing lock on "x" ("x" のロックを強行する)
345 タイムアウトしたため、 \fBロックファイル\fP "x" は強制的に削除される。
346 (\fBLOCKTIMEOUT\fP も合わせて参照されたい)
347 .TP 
348 Incomplete recipe (不完全なレシピ)
349 レシピの開始は見つかったが、レシピの終了が見つからないまま EOF で行き詰まってしまった。
350 .TP 
351 Insufficient privileges (不十分な権限)
352 procmail が配送モードで動作するには、procmail に root 権限が 必要であるか、 procmail の (e)uid \fBおよび\fP
353 (e)gid が正しいものでなければならない。メールはバウンスする。
354 .TP 
355 Invalid regexp "x" (無効な正規表現 "x")
356 正規表現 "x" にはエラーがある (多くの場合、括弧が不足していたり余計だったりする)。
357 .TP 
358 Kernel\-lock failed (カーネルロックが失敗した)
359 カーネルがサポートするロック機能を試みている間に、 それら機能呼び出しのうちの1つが失敗した (通常 OS エラーを示す)。 procmail
360 はこのエラーを無視し、処理を続行する。
361 .TP 
362 Kernel\-unlock failed (カーネルアンロックが失敗した)
363 上記説明を参照。
364 .TP 
365 Lock failure on "x" ("x" のロック失敗)
366 このエラーは、適切でない (そして不正な) ロックファイル名を指定しているか、 または権限が不足していたり存在しないサブディレクトリを指定したために
367 \fBロックファイル\fP が作成できなかった場合にのみ生じる。
368 .TP 
369 Lost "x" ("x" が消失した)
370 procmail は自身のクローンを作ろうとしたが、 rcfile "x" が 見つからなかった (その rcfile が削除されたか、或は
371 rcfile が相対パスで指定されていて、 前回 procmail がその rcfile を開いてからディレクトリを変更したかのいずれかである)。
372 .TP 
373 Missing action (動作の不足)
374 現在のレシピが不完全であることがわかった。
375 .TP 
376 Missing closing brace (閉じ括弧不足)
377 ネストしているブロックの開始はあるが終了が無い。
378 .TP 
379 Missing name (名前の不足)
380 \-f オプションには特別な引数が必要である。
381 .TP 
382 Missing argument (引数の不足)
383 \-a オプションが指定されたが、引数が忘れられている。
384 .TP 
385 Missing rcfile (rcfile がない)
386 \-m オプションが指定されているが、 \-m オプションは引数として rcfile 名が必要である。
387 .TP 
388 Missing recipient (受取人がない)
389 \-d オプションを指定したか、または別の名前で procmail が呼び出された。 その際、引数として 1つ以上の受取人が必要である。
390 .TP 
391 No space left to finish writing "x" ("x" の書き込みを終了させるだけの容量がない)
392 "x" を含むファイルシステムに、配送メッセージをファイルに書き込むだけの十分な空き容量がない。
393 .TP 
394 Out of memory (メモリ不足)
395 システムにスワップスペースが不足している (そして NORESRETRY が使い尽くされた)。
396 .TP 
397 Processing continued (処理が続行されている)
398 コマンドラインで認識されないオプションは無視され、そのまま処理を続行する。
399 .TP 
400 Program failure (nnn) of "x" (プログラム "x" が失敗した (nnn))
401 procmail から起動されたプログラムが、EXIT_SUCCESS (=0) ではなく nnn を返した; nnn
402 が負なら、そのプログラムが死んだことを示すシグナルである。
403 .TP 
404 Quota exceeded while writing "x" ("x" の書き込み中にディスクの割当量を超過した)
405 "x" を含むそのファイルシステムにおける、受取人に対するファイルサイズの制限の為に、 メッセージをファイルへ配送することが許されない。
406 .TP 
407 Renaming bogus "x" into "x" (間違っている名前 "x" を "x" に変更する)
408 受取人のシステムメールボックスが誤りだったので、 procmail は回避動作を行った。
409 .TP 
410 Rescue of unfiltered data succeeded/failed (フィルタされていないデータの救出に
411 成功した / 失敗した)  (procmail から起動した) フィルタの実行に失敗したので、procmail
412 はメールをフィルタに渡す以前のテキストに戻そうとした。
413 .TP 
414 Skipped: "x" ("x" はスキップされた)
415 rcfile の "x" については (文法エラーに因り) 何も行われず無視された。
416 .TP 
417 Suspicious rcfile "x" (rcfile "x" は疑わしい)
418 rcfile の所有者が受取人もしくは root のいずれでもないか、 rcfile
419 自体またはこれが存在するディレクトリが誰でも書き込み可能になっているか、 この rcfile がデフォルトの rcfile
420 ($HOME/.procmailrc) である場合はそのファイル自体または ファイルを含むディレクトリがグループ書き込み可能である (group
421 writable) かのいずれかであった。 (したがって rcfile は使われなかった)
422 .TP 
423 Terminating prematurely whilst waiting for .\|.\|. (.\|.\|. を待っている間の中途終了)
424 procmail は .\|.\| を待っている間にシグナルを受信した。
425 .TP 
426 Timeout, terminating "x" (時間切れ: "x" の終了)
427 プログラムまたはフィルタ "x" は実行中に時間切れとなった。
428 .TP 
429 Timeout, was waiting for "x" ("x" を待っていたが時間切れになった)
430 プログラム或はフィルタの実行中、またはファイル "x" の処理中に時間切れとなった。 "x"
431 がプログラムまたはフィルタの場合、もはや動作していないように見えた。
432 .TP 
433 Truncated file to former size (ファイルを元のサイズに切り詰めた)
434 ファイルの配送が成功しなかったので、そのファイルは元のサイズに切り詰められた。
435 .TP 
436 Truncating "x" and retrying lock ("x" の切り詰めとロックの再試行)
437 "x" は有効なファイル名ではないか。またはファイルが空ではない。
438 .TP 
439 Unable to treat as directory "x" ("x" をディレクトリとして扱えない)
440 "x" の末尾が MH または maildir フォルダであることを示しているか、
441 或はそれらのいずれかへリンクされている二番目のフォルダとして記述されていたが、 "x" は既に存在していて、且つディレクトリではない。 (訳注:
442 メールボックス名の末尾が "/" で終る場合は maildir として、 "/." で終る場合は MH として扱われる。詳細は procmailrc
443 (5) を参照。)
444 .TP 
445 Unexpected EOL (予期しない EOL)
446 引用符を閉じ忘れているか、 EOF の回避をし忘れている。 (訳注: 原文及びソース中のエラーメッセージには EOL (End Of Line: 行末)
447 と書かれているが、ソースを参酌すると EOF (End Of File: ファイル終端) の間違いと推測する。)
448 .TP 
449 Unknown user "x" (未知のユーザ "x")
450 指定された受取人に対応する uid がない。
451 .SH 拡張診断
452 VERBOSE 変数に値を設定すると、拡張診断機能を有効/無効にできる。
453 .TP  2.3i
454 [pid] time & date
455 procmail の pid とタイムスタンプである。 procmail が診断をログ記録する時にはいつでも生成され、
456 少なくとも最後のタイムスタンプから1秒は経過している。
457 .TP 
458 Acquiring kernel\-lock (カーネルロックの獲得)
459 procmail は、直前に開いたファイル (記述子) をカーネルロックしようとしている。
460 .TP 
461 Assigning "x" ("x" の割り当て)
462 環境変数割り当て。
463 .TP 
464 Assuming identity of the recipient, VERBOSE=off (受取人のユーザ属性を想定する。VERBOSE=off)
465 特権があればそれらをすべて破棄し、拡張診断機能を自動的に無効にする。
466 .TP 
467 Bypassed locking "x" ("x" のロック回避)
468 procmail はメールスプールディレクトリへアクセスできなかったので、カーネルのロック機能しかあてにならなかった。
469 .TP 
470 Executing "x" ("x" の実行)
471 プログラム "x" を起動する。 シェルを介在させずに procmail から直接 "x" を起動する場合、 procmail
472 は引数と引数の間にカンマを挿入して引数の区切りを示す。
473 .TP 
474 HOST mismatched "x" (このホストのホスト名は "x" と一致しない)
475 このホストのホスト名を "x" と認識した。 HOST には何か余計なものが含まれていた。 (訳注: ホスト名の検証結果に関するメッセージ。)
476 .TP 
477 Locking "x" ("x" をロックする)
478 ロックファイル "x" を作成する。
479 .TP 
480 Linking to "x" ("x" にリンクする)
481 ディレクトリフォルダ間にハードリンクを作成する。
482 .TP 
483 Match on "x" ("x" で一致する)
484 条件が一致した。
485 .TP 
486 Matched "x" (一致した "x")
487 "x" が \fBMATCH\fP に 割り当てられた。
488 .TP 
489 No match on "x" ("x" には何も一致しない)
490 条件が一致せず、レシピは読み飛ばされた。
491 .TP 
492 Non\-zero exitcode (nnn) by "x" ("x" は 0 以外の終了コード (nnn) で終了した)
493 レシピの条件文として、或は `W' フラグのを用いるアクション行として procmail から起動されたプログラムは、 EXIT_SUCCESS
494 (=0) ではない終了コード nnn を返して終了した。 この使い方は全く予期しない状態ではないことを示す。 (訳注:
495 すなわち、プログラムの終了コードを条件分岐に用いるレシピにおいては、このメッセージが出ても必ずしも何らかの異常を示すものではない。)
496 .TP 
497 Notified comsat: "$LOGNAME@offset:file" (comsat の通知: "$LOGNAME@offset:file")
498 `file' の `offset' の位置に、ユーザ $LOGNAME 宛てのメールが 到着したと、comsat/biff へ通知した。 (訳注:
499 biff はメールの到着を通知するユーティリティ。 comsat は biff サーバ。各々 biff.1 及び comsat.1 を参照。)
500 .TP 
501 Opening "x" ("x" を開いている)
502 Opening "x" ("x" のオープン)  追加のためにファイル "x" を開く (訳注: append mode: 追加モード)
503 .TP 
504 Rcfile: "x"
505 rcfile は "x" に変更された。
506 .TP 
507 Reiterating kernel\-lock (カーネルロックの繰り返し)
508 いくつかのロック方式を試行している最中に、そのうちの一つが失敗した。 その試行のすべてが間をおかず連続して成功するまで、 procmail
509 はカーネルロックを繰り返す。
510 .TP 
511 Score: added newtotal "x" (スコア: 追加の結果、新しい合計値は "x" となった)
512 この条件によってスコアに点が追加された。 スコアは `新しい合計値' になった。
513 .TP 
514 Unlocking "x" ("x" のロック解除)
515 ロックファイル "x" を再び削除する。
516 .SH 警告
517 システムメールボックス以外の任意のメールボックスに対して自分のメールシェルを起動する場合は、その前に \fBlockfile\fP(1)
518 を使用するシェルスクリプトを作成すること。 (もちろん、自分のメールシェルが (ローカルであるかグローバルであるかにかかわらず) rcfile
519 で指定したロックファイルと同じものを使用している場合は別である。)
520 .PP
521 万が一 procmail を自身の正常終了前に絶対 kill しなければならない場合は、 まず最初に通常の kill コマンドを試してみること。
522 (つまり kill \-9 \fIではない\fP 。終了コードについては \fIシグナル\fP を参照のこと)  さもないと、 \fIロックファイル\fP
523 がいくつか削除されない場合がある。
524 .PP
525 \fB\-t\fP オプションは注意して使用すること。 (例えば rcfile に誤りがあるために)  procmail
526 が何度もメールの配送失敗を繰り返すと、システムのメールキューが 溢れる可能性がある。 こうなると、ローカルの postmaster
527 と他のユーザの両方に迷惑をかけるだろう。
528 .PP
529 \fB/etc/procmailrc\fP ファイルは root 権限で実行される場合があるので、 このファイルに書き込む内容には十分に注意すること。
530 \fBSHELL\fP は現在の受取人のシェルと同じになるため、 procmail でシェルを起動する
531 必要がある場合は、最初にこの変数を何らかの無難な値に設定しておくとよい。 \fBDROPPRIVS\fP も参照のこと。
532 .PP
533 \fB/etc/procmailrcs/\fP にあるファイルに対して \fBchown\fP(1)
534 が許可されていれば、そのファイルの現在の所有者は、そのファイルを rootにでも (他の誰にでも) chown できることを心に留めておくこと。
535 そこで、セキュリティを最大限強化するため、このディレクトリは 必ず root だけが \fI実行可能\fP であることを確認すること。
536 .PP
537 自分のドメイン宛ての全てのメールに対して POP アカウントが1つしかないような、 1つのメールボックスを複数のユーザが共有する場合、 procmail
538 は適切なツールではない。 使用している MTA をどうにかして設定して、 そのメッセージの宛先を procmail
539 に伝えるいくつかのヘッダを受取人データのエンベロープに追加すればそのような共有も可能になるだろう。 しかしこれは通常正しい行為ではない。 おそらく、その
540 MTA に「仮想ユーザテーブル」機能が備わっているかどうかを調べるか、 Fetchmail の `multidrop' 機能を調べる方がいい。
541 .SH バグ
542 procmail は強制的にロックファイルを削除した後、 新しいロックファイルを作成する前に $SUSPEND 秒待つ。
543 これは、古くなったロックファイルを削除しようとする他のプロセスが、 新たに作成されたロックファイルを誤って削除しないようにする為である。
544 .PP
545 procmail は、暴走したフィルタを終了する為に通常の TERMINATE シグナルを使用する。
546 しかし、そのシグナルにフィルタが応答するかどうかは確認しない。 それに procmail がシグナルを送るのはそのフィルタ自体であり、
547 そのフィルタのどの子プロセスにもシグナルは送らない。
548 .PP
549 複数行に渡る、長過ぎる \fBContent\-Length:\fP フィールドは正しく処理されない。
550 .PP
551 複数行に渡る一つのヘッダに含まれる改行は、 マッチングの際にはそれをそのまま1個の空白として扱うのではなく、 無視されるだろう。
552 .SH その他
553 メールヘッダに \fBContent\-Length:\fP フィールドがあり、 \fB\-Y\fP オプションが指定されていなければ、 procmail
554 はそのフィールドに指定されているサイズを正しいサイズになるように調整する。 その際、 procmail は Content\-Length:
555 フィールドのフィールド幅を変更しない。
556 .PP
557 \fBContent\-Length:\fP フィールドがない場合、または \fB\-Y\fP オプションが指定されている状態で procmail
558 が通常のメールフォルダに メールを追加する場合、メッセージ本文中で消印 (postmark) と間違えそうな 全ての行の行頭には `>'
559 が追加され、これにより偽造メールヘッダを無害化する。 この消印は、以下の正規表現を用いて検索する。 (訳注: 消印 (postmark) はエンベロープ
560 From を示す行のことである。 mbox 形式メールボックスにメッセージを配送する際には、 識別文字列 "From " と混同しないように、
561 本文中で行頭に "From" がある場合は、該当する全ての行の行頭に引用符 '>' を付加する。 なお、引用符の追加は MH フォルダ形式と
562 maildir フォルダ形式では行われない。)
563 .RS
564 `\enFrom '
565 .RE
566 .PP
567 明示的配送モードで使用される配送先のユーザ名が /etc/passwd になければ、 procmail
568 は明示的配送モードになっていなかったものとして処理を継続する。 明示的配送モードになっておらず、且つ実行中の procmail の uid に 対応する
569 /etc/passwd エントリがない場合、HOME , LOGNAME , SHELL 及び ORGMAIL の各変数のデフォルト値は、それぞれ /
570 , #uid , /bin/sh , /tmp/dead.letter になる。
571 .PP
572 明示的配送モードの時、メッセージヘッダの先頭に `From ' 行がない場合、procmail はこれを生成する。 `From '行が既にある場合は、
573 procmail はそれには手を付けずにそのまま残す。 procmail を起動したユーザのユーザ或はグループ ID が root, daemon,
574 uucp, mail, x400, network, list, slist, lists or news のいずれでもなく、それでも新しい `From
575 \&' 行を生成ないし受け入れる 必要がある場合は、偽造メールと区別しやすくするために procmail は `>From ' 行を追加する。
576 .PP
577 セキュリティ上の理由から、 procmail が使用する rcfile は絶対パスか $HOME からの相対パス指定であり、且つその所有者が受取人または
578 root であり、 且つ rcfile 自体とこれを含むディレクトリの両方共誰でも書き込みできる状態であってはならない (訳注: world
579 writable: other (その他) の書き込みビット (w) が立っている状態を指す。 man chmod 参照。)
580 更に、$HOME/.procmailrc ファイルの場合は、同一グループユーザが書き込み可能であってはならないし、 また $HOME
581 ディレクトリが同一グループから書き込み可能であってはならない。
582 .PP
583 /var/spool/mail/$LOGNAME が偽のメールボックスである (すなわち、メールボックスの所有者が受取人でないか、
584 メールボックスが書き込みできないか、メールボックスがシンボリックリンク或はハードリンクである) 場合、 procmail は起動時にそのメールボックスを
585 `BOGUS.$LOGNAME.' で始まり、 inode\-sequence\-code で終わるファイル名に変更しようとする。
586 もしこれができないとわかると、 \fBORGMAIL\fP には初期値が \fI設定されない。\fP 結果として、適切な rcfile
587 のない状態でメールの配送が行われなくなる。
588 .PP
589 /var/spool/mail/$LOGNAME は正規のメールボックスだが、 パーミッションが甘すぎる場合は、 procmail はこれを修正する。
590 procmail にこのようなパーミッション操作をさせないようにするには、 メールボックスに必ず u+x ビットを立てること。
591 .PP
592 メールをディレクトリ、MH フォルダ、または maildir フォルダに配送する際には、 procmail
593 の複数起動による混乱を防ぐ為にロックファイルを使う必要は \fBない。\fP
594 .PP
595 MH フォルダへの配送は、通常のディレクトリや mailbox への配送よりも若干の時間を 要する。 これは procmail が
596 (すぐに使えるファイル名を採用しないで) MH フォルダ内で ファイル名として使える次の番号を検索しなければならないからである。
597 .PP
598 \fB\-t\fP オプションが指定されていない限り、procmail は一般的な失敗に関して EX_CANTCREAT を返す。 \fB\-t\fP
599 オプションが指定されている場合には EX_TEMPFAIL を返す。
600 .PP
601 egrep 風のヘッダ検索をより良く行う為に、 procmail は複数行にわたる 全てのヘッダフィールドを連結して一行にする。
602 但し、これは内部的な処理であり、メールを配送する際には、 改行は元の状態に戻る。
603 .PP
604 (たとえば procmail が違う名前でリンクされていて、その違う名前で 起動される場合のように) 起動する procmail の名前が
605 `procmail' で 始まっていない場合、その procmail は明示的配送モードで起動され、 (\-d オプションが指定された時と同様に)
606 コマンドラインの引数に 受取人名が必要になる。
607 .PP
608 Comsat/biff 通知は udp を使用して行われる。 この通知は、procmail が通常のログファイルのエントリを生成した時に
609 一回送出される。通知メッセージは下記の拡張フォーマット (または最後の配送先がファイル以外の時のフォーマットと酷似したもの)  である:
610 .RS
611 $LOGNAME@offset_of_message_in_mailbox\h'-\w' 'u' :absolute_path_to_mailbox
612 .RE
613 .PP
614 procmail がメールの配送の際にファイルを開く時は、 procmail は常に \fBfcntl\fP(2)  によるカーネルロックの方法を使用する。
615 .PP
616 procmail は NFS 環境でも使用可能で、 8 ビット問題はない。(訳注: 8bit clean:
617 データの8ビット目を遮ることなく透過的にデータ転送を行えることを指す。)
618 .br
619 .ne 11
620 .SH 備考
621 procmail をコマンドラインオプション \-h または \-? にて起動すると、 コマンドラインヘルプとレシピフラグのクイックリファレンスのページが
622 表示される。
623 .PP
624 メールフィルタ(特に procmail)に関して、初心者向けに優れた FAQ がある: これは Nancy McGough
625 <nancym@ii.com> が保守しており、 mail\-server@rtfm.mit.edu
626 に以下の内容の本文をメールすれば入手できる (訳注: http://www.faqs.org/faqs/mail/filtering\-faq/
627 からも閲覧可能)。
628 .RS
629 send usenet/news.answers/mail/filtering\-faq
630 .RE
631 .PP
632 もし procmail が当該ホストのデフォルトのメール配送エージェントとしてインストール \fIされていなければ\fP
633 (システム管理者に問い合わせること)、自分宛のメールが到着した時に 起動されることを確認する必要がある。 この場合、自分の $HOME/.forward
634 に以下の行を書いておくこと (このファイルは誰でも読み込み可能で \fBなければならない\fP ことに注意)。
635 その際、必ずシングルクォートとダブルクォートを含むこと。 さらに、自分のサイトで smrsh (the SendMail Restricted
636 SHell) が動いている と分かっていれば別だが、そうでなければ、このパスは \fI絶対パス\fP にすること。
637 .PP
638 .na
639 .nf
640 "\h'-\w' 'u' |exec /usr/bin/procmail"
641 .fi
642 .ad
643 .PP
644 procmail は、既に一杯になっているシステムメールボックスの 後処理にも使用できる。 $HOME/.forward ファイルを使いたくないとか、
645 使用できない場合にこれが役に立つ場合がある。 (この場合は以下のスクリプトを \fBcron\fP(1)
646 から定期的に呼び出しても良いし、メールを読み始める際に必ず起動するようにしても良い。)
647 .Sx 17
648 #!/bin/sh
649
650 ORGMAIL=/var/spool/mail/$LOGNAME
651
652 if cd $HOME &&
653  test \-s $ORGMAIL &&
654  lockfile \-r0 \-l1024 .newmail.lock 2>/dev/null
655 then
656   trap "rm \-f .newmail.lock" 1 2 3 13 15
657   umask 077
658   lockfile \-l1024 \-ml
659   cat $ORGMAIL >>.newmail &&
660    cat /dev/null >$ORGMAIL
661   lockfile \-mu
662   formail \-s procmail <.newmail &&
663    rm \-f .newmail
664   rm \-f .newmail.lock
665 fi
666 exit 0
667 .Ex
668 .ne 14
669 .SS "$HOME/.procmailrc のちょっとしたサンプル:"
670 .na
671 .nf
672 PATH=/usr/local/bin:/usr/bin:/bin
673 MAILDIR=$HOME/Mail      #you'd better make sure it exists
674 DEFAULT=$MAILDIR/mbox   #completely optional
675 LOGFILE=$MAILDIR/from   #recommended
676
677 :0:
678 * ^From.*berg
679 from_me
680
681 :0
682 * ^Subject:.*Flame
683 /dev/null
684 .fi
685 .ad
686 .PP
687 その他の rcfile レシピの例は \fBprocmailex\fP(5)  マニュアルページを参照されたい。
688 .Sh SOURCE
689 このプログラムは \fIprocmail mail\-processing\-package\fP (v3.22) の一部で
690 あり、http://www.procmail.org/ または ftp.procmail.org の
691 \fBpub/procmail/\fP で入手できる。
692 .Sh MAILINGLIST
693 procmail パッケージの全てのプログラムに関連した質問へのメーリングリストが ある:
694 .RS
695 <procmail\-users@procmail.org>
696 .RS
697 質問/回答の投稿用アドレス。
698 .RE
699 <procmail\-users\-request@procmail.org>
700 .RS
701 参加申込用のアドレス。
702 .RE
703 .PP
704 .RE
705 新しいバージョンやオフィシャルパッチについての情報を常時入手したい場合 には、以下のメールアドレスに参加申込をすること:
706 .RS
707 procmail\-announce\-request@procmail.org
708 .RE
709 (これは購読専用のメーリングリストである)。
710 .SH 著者
711 Stephen R. van den Berg
712 .RS
713 <srb@cuci.nl>
714 .RE
715 Philip A. Guenther
716 .RS
717 <guenther@sendmail.com>
718 .RE
719 .\".if n .pl -(\n(.tu-1i)
720 .rm SH
721 .rn Sh SH
722 .rm SS
723 .rn Ss SS
724 .rm TP
725 .rn Tp TP
726 .rm RS
727 .rn Rs RS
728 .rm RE
729 .rn Re RE