趣味というほど入れ込んでいるわけではありませんが、
メールを貯めているファイル(RMAILフォーマットであることが多い
のですが)に対してちょっとした処理をするのにちょっとした
ツールを即席で作ったりします。
大体、即席のツールというのはアドホックに作って使い捨てるので
すが、中にはだんだん手を加える物も出てきます。
- ファイル
daystat.pl
- 対象
- RMAILファイル
- 主旨
-
流通量の多いメーリングリストに入っていると、
「いやあ、今日は多いですねえ」かなにか言うための裏を取りたく
なることがあります。
メーリングリストからのメールで、サブジェクトに通算メッセージ
番号が入れられている場合、Summary-lineの該当部分を数えれば簡
単にできますよね。
Subject:ヘッダやX-Ml-Count:などを見た方が美しいのは分かるの
ですが、これらは引用部文中に表れることがあるので、それを除け
るためにヘッダだけ切り出す必要が出ます。面倒です。
[メニュー]
[能書き]
[リンク]
- ファイル
lacklist.pl
- 対象
- RMAILファイル
- 主旨
-
MLの話が盛り上がっているところへ、
サーバマシンや途中経路のトラブルで届かないメッセージが出るこ
とがあります。
一方、過去のメッセージを取り寄せる機能を持ったサーバプログラ
ムというのも存在します。届かなかったメッセージをこの機能を使っ
て取り寄せたい場合、抜けたメッセージの一覧が欲しくなりますね。
そこで、Subject:行に含まれる通算メッセージ番号を見て、番号の
連続していないところを探し、抜けた番号を表示します。
[メニュー]
[能書き]
[リンク]
- ファイル
froms
- 対象
- sendmailのメールスプール
- 主旨
-
xpbiffなどを使っていないので、メールが来たら読むまでどんなメッ
セージが来たか分かりません。
そこで、定期的にfromを走らせてスプールの中身をチェックします。
スプールをチェックするだけのために端末を1枚開かなければなら
ないのが玉に傷です。
[メニュー]
[能書き]
[リンク]
- ファイル
selmail.pl
- 対象
- sendmailのメールスプール
- 主旨
-
MLの管理を任せている人が長期間留守にしているところへ、
そのMLに関する事務処理が発生しました。
仕方がないので、その人に代わってあなたが処理しなければなりま
せん。まず、MLのメールをざっと見なければならないのですが、
彼のメールスプールには当然ながら私信も含まれているため、
無関係なメッセージは見ないようにしなければなりません。
そこで、MLのメッセージだけ抜き出します。
ヘッダのSubject:行を見てMLのメッセージであることを示すマーク
のあるメッセージを取り出します。
[メニュー]
[能書き]
[リンク]
- ファイル
mh2rmail.pl
- 対象
- MHのフォルダ
- 主旨
-
普段はメールをRMAILで読んでいるのですが、
あるとき研究室の電源工事のためにメールインタフェースとして標
準でMHしかサポートされていない環境に移らなければなりませんで
した。仕方なく工事の間はincとかshowとかコマンドラインから打っ
ていました。
さて、工事が終わると、一時的な環境で貯めていた過去のメッセー
ジ群を研究室の環境に戻す必要がありました。
そこで、MHのフォルダをRMAILファイルに変換したくなったのです。
このプログラムは、引数で指定されたフォルダからメッセージを読
み出し、RMAILフォーマットに変換して標準出力へ出力します。
[メニュー]
[能書き]
[リンク]
- ファイル
summary.awk
- 対象
- RMAILファイル
- 主旨
-
RMAILファイルの内容をざっと一瞥するのに、サマリ行だけを表示
したいことがあります。
しかし、RMAILでは、サマリ表示を指示しないとSummary-line:行が
作られません。そこで、ヘッダ情報からSummary-line:行に相当す
るものを生成します。
作ったSummary-line:行は元のRMAILファイルに書き戻されることは
ないので、何のこっちゃということになりますが、まあこんなもの
の必要性を感じたこともあるのです。(--;
[メニュー]
[能書き]
[リンク]
- ファイル
mbox2mh.pl
- 対象
- UNIX Mailファイル
- 主旨
-
普段MHでメールの読み書きをしている人が、マシントラブルのためUCB-Mailな
どを使ってメールを読んだ結果、mboxというUNIX Mailファイルにメッセージ
が保存されました。
復旧後、mh-eを立ち上げると、当然ながらmboxに落ちたメッセージは吸い上げ
てくれません。これがRMAILだったらmboxを見付けて吸い上げてくれるのです
が、mh-eの仕様がこれですから仕方がありません。
要は、UNIX Fromでファイルを分割すれば済む話なので、さくっと作ってみた
のですが、フォルダ内に既に存在するメッセージを見て続く番号のファイルを
作るとか、.mh_profileを見てフォルダのディレクトリを見るとかいった手足
を付けているうちに、その人は手で当該ファイルを分割セーブして、せっかく
作ったプログラムは用済みになってしまいましたとさ。
ちゃんちゃん。
- 後日談
-
実は、
inc -file mbox
でできるそうです。(^^;;
[メニュー]
[能書き]
[リンク]
- ファイル
spools
- 対象
- sendmailのメールスプール
- 主旨
-
サイト内で特定のユーザのアクティビティを知りたいときの指標としてfinger
コマンドなどを通じて使われるのが、未読のメールがあるかどうかの状況です。
fingerを発行してもよいのですが、都合によりfingerdを落としているのと、
ローカルで未読メールがあるかどうかだけならread-onlyマウントされている
スプールのstatを直接見に行った方がマシンに与える負荷も軽いので、スプー
ルを見ています。
- 使用上の注意
-
- attackと間違われないようにしましょう。
殊に、このスクリプトを改造してfingerを発行するように変更するのは危険
です。すでにfinger attackというものが世間に存在するからです。
- スクリプトの性質上、再配布は避けましょう。
システム情報を定期的に参照するプログラムや子プロセスを幾つも起動する
プログラムを一度に大人数で使用するように仕向けるのはそれだけで
denial-of-service attackと認定される可能性があります。
-sleep
オプションでスプールを見にいくインターバルを設
定する時は設定値に十分注意しましょう。
小さなプロセスが幾つも起きるので、不用意に小さな値を設定するとプロセ
ス起動のためにUNIXの負荷が上昇します。
- このスクリプトでは他人のメールスプールの中身迄は見ていませんが、職
権濫用の疑いをかけられた場合に備えて技術的・政治的・宗教的その他保身
に必要となるいいわけをあらかじめ準備しておきましょう。
- 大量のメールを受け取る人の場合、スプールを見に行くインターバルが長
いと、スプールを見る合間にメールを読んでも見掛け上スプールが減らない
こともあります。
[メニュー]
[能書き]
[リンク]
BACK TO:
Copyright (C) 1994,1995 by MIURA Toshitaka
All rights reserved.
last update: $Date: 2002/12/10 18:17:06 $
- このページは公開されている。
- このページの掲示責任者は三浦敏孝(miura@computer.org)である。
- このページへのリンクは無許諾で張ってよい。
MIURA, Toshitaka
<miura@computer.org>