[JM:00249] Re: [POST:DP] procmail procmailex.5

Back to archive index

長南洋一 cyoic****@maple*****
2011年 4月 16日 (土) 18:19:28 JST


長南です。

すっきりした読みやすい翻訳だと思います。

わたしも spam フィルタリングのために procmail を使っています。
設定をしたときは、procmail の man を読んでも、procmailrc の
man を読んでもさっぱりわからず、困ったものでした。procmailex の
ようにたくさん用例が挙げられていると、何となくわかった感じが
します。日本人にとっては、理屈で教わるより、具体的な用例で
教わる方が、理解しやすいのではないでしょうか。というわけで、
procmailex をお訳しになったのは、とてもよいことだと思います。

さて−−

まず最初に、パラグラフに「。」で終わっているものと、「:」で
終わっているものがあります。どういう基準なのでしょうか。
原文は、文がきちんと終わっているものはピリオド、不完全な文の
ときはコロンと使い分けているようですが。

> .SH 書式
> .\"O .B $HOME/.procmailrc examples
> .B $HOME/.procmailrc 設定例

いつもの「書式」とは書式が違うので、どうしたらよいか迷いますが、
少なくとも「$HOME/.procmailrc の設定例」と「の」を入れた方が
よいのではないでしょうか。

> .\"O This man page shows several example recipes.  For examples of complete rcfiles
> .\"O you can check the NOTES section in
> .\"O .BR procmail (1),
> .\"O or look at the example rcfiles part of the procmail source distribution
> .\"O (procmail*/examples/?procmailrc).
> この manpage は、いろいろなレシピの例を示したものである。
> rcfile 全体の例については、
> .BR procmail (1)
>の「注記」の章や、procmail のソース配布に含まれる rcfile のサンプル
> (procmail*/examples/?procmailrc) を参照してほしい。

procmail(1) に「注記」というセクションはありません。「その他」
セクションが二つあって (これ、まずいと思うんですが)、その二番目の
「その他」のことのようです。ついでに言うと、procmailrc(5) の
冒頭には、「取り敢えずすぐ始めたい場合は、procmail (1) マニュアルの
後の 注意 章を参照されたい」という文があります。

# なお、section は訳すとすれば、「節」か「項」だと思います。
# 「セクション」のままにする手や、省略する手もありそうです。
# 「章」というほど長くないでしょう。

> .\"O If you are fairly new to procmail and plan to experiment a little bit
> .\"O it often helps to have a
> .\"O .I safety net
> .\"O of some sort. Inserting the following two recipes above all other recipes
> .\"O will make sure that of all arriving mail always the last 32 messages will
> .\"O be preserved.  In order for it to work as intended, you have to create
> .\"O a directory named `backup' in $MAILDIR prior to inserting these two recipes

> procmail を使うのがほとんど初めてで、ちょっとだけ試してみたい場合は、
> 何らかの「安全網」を設けておくと助かることが多い。

safety net というのは、空中ブランコをするときの事故防止ネットの
ことでしょう。「安全網」ではイメージがわかないと思います。
サーカス関係で使うときは、普通「セーフティネット、安全ネット」と
言うようですし、「安全策」「保障 (手段、装置)」「バックアップ」
など、他の言葉も使えそうです。

> この機能を働かせるためには、これら 2 つのレシピを追加する前に $MAILDIR に
> `backup' という名前のディレクトリを作っておかなければならない。

as intended が抜けています。

> .\"O If your system doesn't generate or generates incorrect leading `From '
> .\"O lines on every mail, you can fix this by calling up procmail with
> .\"O the \-f- option. (以下略)

> 使っているメールシステムが、メールの先頭の `From ' 行を生成しなかったり、
> 間違った `From ' 行を生成したりする場合は、procmail を \-f- オプションをつけ
> て呼び出すことでこの問題を修正する (正しい `From ' 行をつける) ことができる。

on every mail の訳が抜けています。すぐ上の項もそうですが、意図的に
省略なさったのなら、それはそれでよいと思います。

なお、カッコの中は、(すなわち、正しい `From ' 行をつける) とした方が
読みやすいかもしれません。

> .\"O Add the headers of all messages that didn't come from the postmaster
> .\"O to your private header collection (for
> .\"O statistics or mail debugging); and use the lockfile `headc.lock'.  In order
> .\"O to make sure the lockfile is not removed until the pipe has finished,
> .\"O you have to specify option `w'; otherwise the lockfile would be
> .\"O removed as soon as the pipe has accepted the mail.
> 管理者 (postmaster) 以外から来た全てのメールのヘッダを、(統計をとったり、
> メールのデバッグのために) 自分だけのヘッダコレクションに追加するには、次の
> ように設定する。書きこみ時のロックファイルとして `headc.lock' を使用する。
> パイプ処理が完了する前にロックファイルが削除されることがないように、
> `w' オプションを指定しなければいけない。さもなければ、ロックファイルは
> パイプが処理対象のメールを受け付けたと同時に削除されてしまう。

微妙な話なので、うまく説明できませんし、わたしの語感がおかしいの
かもしれませんから、無視なさってもかまいません。

「さもなければ、ロックファイルはパイプが処理対象のメールを受け付けたと
同時に削除されてしまう」に引っかかります。

理由は二つあって、一つは、「さもなければ」に仮定的な意味が強いので、
文末に「だろう」といった助動詞がないと、うまく呼応しない気がします。
「さもないと、そうしないと」ならば、「だろう」がなくても大丈夫そう
です。いや、そういうことではなく、わたしが「さもなければ」を
堅苦しい言い方だと、感じているだけなのかもしれません。

もう一つの理由は、「受け付けたと同時に」が日本語としてちょっと
不自然な気がするということです。ふつう、「同時に」なら「〜すると
同時に」、「瞬間」なら「〜した瞬間」と言うのではないでしょうか。
原文の完了形を生かそうとなさったことはわかりますし、日本語にちょっと
無理をさせる、と言うか、日本語の用法を広げるのも、ある意味、翻訳の
特権だと思いますが。

> .\"O Split up incoming digests from the surfing mailing list into their individual
> .\"O messages, and store them into surfing, using surfing.lock as the locallockfile.
> surfing メーリングリストのまとめ送りのメールを個々のメッセージに分割して、
> メールフォルダ surfing に格納する。ロックファイルとして surfing.lock を使用する。
> .Sx 3
> :0:
> * ^Subject:.*surfing.*Digest
> | formail +1 \-ds >>surfing

「>>surfing」ですから、surfing はファイルですね。このマニュアルの
後の部分を読むと、mbox 形式のメールボックス・ファイルをフォルダと
言っていますから、「メールフォルダ surfing」は正しいのですが、
Windows 95 以来、フォルダというとディレクトリのことだと、つい
考えてしまいます。

いや、そう考えるのは、わたしが MH 形式を使用するメーラーばかり
使って来たからかもしれません。OE などを使ってきた人が読めば、
「メールフォルダ surfing」に全然抵抗がないのかも。

> .\"O A simple autoreply recipe.  It makes sure that neither mail from any daemon
> .\"O (like bouncing mail or mail from mailing-lists), nor autoreplies coming from
> .\"O yourself will be autoreplied to.  If this precaution would not be taken,
> .\"O disaster could result (`ringing' mail).  In order for this recipe to autoreply
> .\"O to all the incoming mail, you should of course insert it before all other
> .\"O recipes in your rcfile.  However, it is advisable to put it
> .\"O .I after
> .\"O any recipes that process the mails from subscribed mailinglists; it generally
> .\"O is not a good idea to generate autoreplies to mailinglists (yes, the
> .\"O !^FROM_DAEMON regexp should already catch those, but if the mailinglist
> .\"O doesn't follow accepted conventions, this might
> .\"O .I not
> .\"O be
> .\"O .IR enough ).
> 簡単な自動返信用のレシピ。このレシピは、デーモンからのメール (戻ってきた
> メールやメーリングリストからのメールなど) や自分自身からの自動返信のメールには
> 自動返信しないことを保証している。もしこのような注意を怠ったならば、 (メール
> ループなど) 大変なことが起こり得る。このレシピを用いて受信したすべてのメール
> に対して自動応答を行うためには、言うまでもなく rcfile の他の全てのレシピより
> 前にこれを置かなければならない。ただし、講読しているメーリングリストからの
> メールを処理するレシピの「後ろ」にこのレシピを置くことを推奨する。(確かに、
> 正規表現 !^FROM_DAEMON によってそのようなメールはすでに捕まえられているはず
> だが、メーリングリストが一般的な慣習に従っていない場合は、これだけでは
> 「不十分」だからである。)

「このレシピを用いて受信したすべてのメールに対して自動応答を
行うためには」ですが、「このレシピを用いて」がどこにかかるかが
曖昧だと思います。間に読点を入れるか、位置を変えるか。

それから、「このレシピを用いて ... 置かなければならない」と
「ただし、... 推奨する」が矛盾していると思います。いや、原文も
矛盾したことを言っているわけで、それを、一番目の文は原則というか、
理屈であって、二番目の文は現実的な生活の知恵なんだよと、結びつけて
いるわけです。

おそらく、「言うまでもなく」と「置かなければならない」が強すぎる
のだと思います。should は must ではありませんから。それから
However は「ただし」というより、「とは言え」ぐらいなのではないで
しょうか (他の言葉もあるでしょうが)。必要なら、「実際には」と
言った言葉を補足してもよいと思います。

「it generally is not a good idea to generate autoreplies to
mailinglists」が抜けています。

> 以下はもっと複雑な自動返信のレシピの例で、有名な
> .BR vacation (1)
> プログラムと同じ機能を実現するものである。
> このレシピは(メールループを防ぐなどの)直前のレシピと同じ方針で作られている。

ここは訳文だけ引用しておきます。カッコの前後に空白がありません。

> .\"O Store all the messages about meetings in a folder that is in a directory
> .\"O that changes every month.  E.g. if it were January 1994, the folder
> .\"O would have the name `94-01/meeting' and the locallockfile would be
> .\"O `94-01/meeting.lock'.
> 会議 (meeting) に関する全メッセージを月毎に異なるディレクトリに
> 保存する。例えば、1994 年 1 月だったとすると、フォルダ名は `94-01/meeting'
> という名前となり、ローカルロックファイルは `94-01/meeting.lock' になる。

原文は、「in a folder that is in a directory that changes every
month.」です。原文がちょっとくどいので、意図的に簡略になさったのなら、
問題ありませんし、むしろ文章がよくなっていると思いますが、一応書いて
おきます。

それから、この a folder はファイルなんですか。それとも、ディレクトリ?
レシピからすると、ファイルのようですが。

> .\"O .B Beware
> .\"O if you have delivery problems in recipes below this one and procmail tries
> .\"O to requeue the mail, then on the next queue run, this mail will be considered
> .\"O a duplicate and will be thrown away.  For those not quite so confident in
> .\"O their own scripting capabilities, you can use the following recipe instead.
> .\"O It puts duplicates in a separate folder instead of throwing them away.
> .\"O It is up to you to periodically empty the folder of course.
> 注意すべきこととして、これより後のレシピで配信に問題があると procmail は
> そのメールをキューにもう一度入れようとする。そうすると、次回のキュー処理の
> 際にこのメールは重複しているとみなされ、どこかへ行ってしまう。
> 自分のスクリプト作成技術にあまり自信がない場合は、代わりに以下のレシピを
> 使うことができる。このレシピは、重複するメールをどこか捨ててしまうのではなく、
> 別のフォルダに入れる。もちろん、定期的にこのフォルダを空にするのは、
> 自分でやらないといけない。

「どこかへ行ってしまう」「どこかに捨ててしまう」はうまい訳なのですが、
ちょっとやりすぎな気もします。実際に起きることに「どこか」という
曖昧さはないでしょうから。

> .\"O Alternatively, you can have procmail deliver into its own set of mailboxes,
> .\"O which you then periodically empty and copy over to your emacs files using
> .\"O .BR movemail .
> .\"O Movemail uses mailbox.lock local lockfiles per mailbox.  This actually is
> .\"O the preferred mode of operation in conjunction with procmail.
> 別の方法としては、procmail 専用のメールボックスを設け、procmail はそこに
> メールを配信するようにして、定期的に
> .B movemail
> を使ってこのファイルを空にし、内容を emacs メーラーのファイルにコピーする
> こともできる。 movemail はメールボックス単位のローカルロックファイル
> mailbox.lock を使用する。
> 実のところ、procmail と一緒に使う場合、この方法を使う方が望ましい。

「定期的に movemail を使ってこのファイルを空にし」ですが、mailboxes は
ファイルなんでしょうか。mailbox なんだから、ファイルなのか。でも、
「メールボックスを空にし」と言った方が無難なのでは。

> EXITCODE=""
> TRAP="exit 1;"  # exit は単独で動作するプログラム
> 		      # (standalone program) ではないので、
> 		      # 最後のセミコロンは忘れてはいけない。

これは exit がシェルの builtin だということでしょう。「単独で
動作するプログラムではない」というのが、ちょっとピンとこないのですが。

> .\"O The following one is rather exotic, but it only serves to demonstrate a
> .\"O feature. (以下略)

> 以下の例はあまり見かけないものだが、このような機能もこともできるという
> 紹介である。

「このような機能もこともできる」は、舌がもつれているような (失礼)。
こういう場合の exotic は難しいですね。

> .\"O .SH AUTHORS
> .SH 作者
> Stephen R. van den Berg
> .RS
> <srb****@cuci*****>
> .RE
> Philip A. Guenther
> .RS
> <guent****@sendm*****>

わたしは、AUTHORS を「作者」と訳すべきだとずっと主張してきたのですが、
この場合は微妙だと思います。この AUTHORS は、何のことを言っているのか。
procmailex のマニュアルを読んできて、最後に AUTHORS とあったら、
マニュアルの著者ととるのが自然でしょう。でも、procmail の作者の
意味で AUTHORS セクションに二人の名前を載せたのかもしれません。
それならば、「procmail の作者は次の両名である」といった補足が、
欲しい気がします。

# この AUTHORS はお二人とも、名前やアドレスの様子から見て、英語が
# 母国語ではなさそうです。ひどく律儀に仮定法を使っているのも、
# そのためのような気がします。そのへん、訳しにくかったのでは
# ないでしょうか。

-- 
長南洋一




linuxjm-discuss メーリングリストの案内
Back to archive index