RE Re RESx \\$1 Ex
受取人
...
procmail
[ -ptY ]
-m
[ パラメータ=値 ]
...
rcfile
.ti +0.5i
[ 引数 ]
...
procmail
-v
TERMINATE
HANGUP
INTERRUPT
QUIT
ALARM
USR1
USR2
-v
-p
-t
-f fromwhom
fromwhom
を送信者(sender)にして、先頭の `From ' 行を再作成する
(-f の代わりに、今では使われなくなっているが -r が使用できる)。
fromwhom
が `-' 1個だけの場合、procmail は `From ' 行のタイムスタンプの
更新のみ行う
(これはタイムスタンプが存在する場合である。なければ新たに作成する)。
-o
-Y
-a 引数
-a 引数
はそれぞれ次の番号の変数 ($2、$3、他) に設定される。
このオプションで procmail にメタ情報を渡すことができる。
通常、sendmail メーラルールから $@x 情報を渡すことに用いられる。
-d recipient ...
-m
/etc/passwd
/var/mail/$LOGNAME
/etc/procmailrc
/etc/procmailrcs/
$HOME/.procmailrc
/var/mail/$LOGNAME.lock
/usr/sbin/sendmail
_????`hostname`
Autoforwarding mailbox found (自動転送メールボックスが見つかった)
Bad substitution of x (x の不正な置換)
Closing brace unexpected (閉じ括弧が検出されない)
Conflicting options (オプションが矛盾する)
Conflicting x suppressed (矛盾する x は削除された)
Couldn't create x (x を作成できない)
Couldn't create maildir part x (maildir x を作成できない)
Couldn't create or rename temp file x (一時ファイル x の作成または名前変更ができない)
Couldn't determine implicit lockfile from x (x から暗黙の lockfile が決定できない)
Couldn't read x (x が読めない)
Couldn't unlock x (x のロックが解除できない)
Deadlock attempted on x (x のデッドロック未遂)
Denying special privileges for x (x への特別な権限を拒否)
Descriptor x was not open (ファイル記述子 x を開けられなかった)
Enforcing stricter permissions on x (x のパーミッションをより厳しくする)
Error while writing to x (x へ書き込みをする際にエラーが発生した)
Exceeded LINEBUF (LINEBUF 超過)
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 へのパスが長すぎる。)
Excessive output quenched from x (x からの過剰な出力が抑止された)
Extraneous x ignored (無関係な x は無視された)
Failed forking x ( x の fork に失敗した)
Failed to execute x (x の実行に失敗した)
Forced unlock denied on x (x へのアンロックの強行に失敗した)
Forcing lock on x (x のロックを強行する)
Incomplete recipe (不完全なレシピ)
Insufficient privileges (不十分な権限)
Invalid regexp x (無効な正規表現 x)
Kernel-lock failed (カーネルロックが失敗した)
Kernel-unlock failed (カーネルアンロックが失敗した)
Lock failure on x (x のロック失敗)
Lost x (x が消失した)
Missing action (動作の不足)
Missing closing brace (閉じ括弧不足)
Missing name (名前の不足)
Missing argument (引数の不足)
Missing rcfile (rcfile がない)
Missing recipient (受取人がない)
No space left to finish writing x (x の書き込みを終了させるだけの容量がない)
Out of memory (メモリ不足)
Processing continued (処理が続行されている)
Program failure (nnn) of x (プログラム x が失敗した (nnn))
Quota exceeded while writing x (x の書き込み中にディスクの割当量を超過した)
Renaming bogus x into x (間違っている名前 x を x に変更する)
Rescue of unfiltered data succeeded/failed (フィルタされていないデータの救出に
Skipped: x (x はスキップされた)
Suspicious rcfile x (rcfile x は疑わしい)
Terminating prematurely whilst waiting for ... (... を待っている間の中途終了)
Timeout, terminating x (時間切れ: x の終了)
Timeout, was waiting for x (x を待っていたが時間切れになった)
Truncated file to former size (ファイルを元のサイズに切り詰めた)
Truncating x and retrying lock (x の切り詰めとロックの再試行)
Unable to treat as directory x (x をディレクトリとして扱えない)
Unexpected EOL (予期しない EOL)
Unknown user x (未知のユーザ x)
[pid] time & date
Acquiring kernel-lock (カーネルロックの獲得)
Assigning x (x の割り当て)
Assuming identity of the recipient, VERBOSE=off (受取人のユーザ属性を想定する。VERBOSE=off)
Bypassed locking x (x のロック回避)
Executing x (x の実行)
HOST mismatched x (このホストのホスト名は x と一致しない)
Locking x (x をロックする)
Linking to x (x にリンクする)
Match on x (x で一致する)
Matched x (一致した x)
No match on x (x には何も一致しない)
Non-zero exitcode (nnn) by x (x は 0 以外の終了コード (nnn) で終了した)
Notified comsat: $LOGNAME@offset:file (comsat の通知: $LOGNAME@offset:file)
Opening x (x を開いている)
Rcfile: x
Reiterating kernel-lock (カーネルロックの繰り返し)
Score: added newtotal x (スコア: 追加の結果、新しい合計値は x となった)
Unlocking x (x のロック解除)
ではない
。終了コードについては
シグナル
を参照のこと)
さもないと、
ロックファイル
がいくつか削除されない場合がある。
-t
オプションは注意して使用すること。
(例えば rcfile に誤りがあるために)
procmail が何度もメールの配送失敗を繰り返すと、システムのメールキューが
溢れる可能性がある。
こうなると、ローカルの postmaster と他のユーザの両方に迷惑をかけるだろう。
/etc/procmailrc
ファイルは root 権限で実行される場合があるので、
このファイルに書き込む内容には十分に注意すること。
SHELL
は現在の受取人のシェルと同じになるため、 procmail でシェルを起動する
必要がある場合は、最初にこの変数を何らかの無難な値に設定しておくとよい。
DROPPRIVS
も参照のこと。
実行可能
であることを確認すること。
設定されない。
結果として、適切な rcfile のない状態でメールの配送が行われなくなる。
/var/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\h'-\w' 'u' :absolute_path_to_mailbox
procmail がメールの配送の際にファイルを開く時は、 procmail は常に
fcntl (2)
によるカーネルロックの方法を使用する。
procmail は NFS 環境でも使用可能で、 8 ビット問題はない。【訳注: 8bit clean: データの8ビット目を遮ることなく透過的にデータ転送を行えることを指す。】
11
されていなければ
(システム管理者に問い合わせること)、自分宛のメールが到着した時に
起動されることを確認する必要がある。
この場合、自分の $HOME/.forward に以下の行を書いておくこと
(このファイルは誰でも読み込み可能で
なければならない
ことに注意)。
その際、必ずシングルクォートとダブルクォートを含むこと。
さらに、自分のサイトで smrsh (the SendMail Restricted SHell) が動いている
と分かっていれば別だが、そうでなければ、このパスは
絶対パス
にすること。
\h'-\w' 'u' |exec /usr/bin/procmail(特に exim のような) メール配送ソフトの中には、現在のところ上記文法を 許さないものがある。 その場合は、代わりに以下のコマンド行を使用する:
|/usr/bin/procmailprocmail は、既に一杯になっているシステムメールボックスの 後処理にも使用できる。 $HOME/.forward ファイルを使いたくないとか、 使用できない場合にこれが役に立つ場合がある。 (この場合は以下のスクリプトを cron (1) から定期的に呼び出しても良いし、メールを読み始める際に必ず起動するようにしても良い。) 17 #!/bin/sh
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その他の rcfile レシピの例は procmailex (5) マニュアルページを参照されたい。
:0: * ^From.*berg from_me
:0 * ^Subject:.*Flame /dev/null
procmail mail-processing-package
(v3.22) の一部である。