procmail でメールに加工

procmailスクリプト言語を使って,メール本文内に文字列を追加したりする試み.目新しい話ではないが,自分用メモ.


とあるところから,定期的に決まったフォーマットのメールが送られて来るのだが,詳細情報を得るには,メールに書いてある ID 番号をウェブサイトで入力しなければならない.ブラウザを立ち上げてサイトを表示し,ID をコピペして入力,というのがいい加減嫌になってきたので,なんとかすることにしたのだ.幸い,詳細情報の URL は「ドメイン名/ID 番号.html」という形式になっていたので,直接そこを見にいけばまず一手間省ける.


さてどう実装するか,MUAMew を使ってるので,Emacs Lisp を書けば,ID 部分のクリックで w3m が立ち上がるようなものが書けるだろうが,あいにくそんな暇はない.browse-url をそのまま活用しよう.ということでメール本体から ID を切り出して URL を生成し,メール本文に埋め込めればよいかな,と.


formail を使えばできそうな気はしたけど,formail の動作ってよく知らないし,それを調べている暇すらない.結局,以下のような感じのコードを .procmailrc に書いてお茶を濁す.ちなみに ID は ^\ \ (D[0-9]+)$ というフォーマットである.

| perl -pe 's/^\ \ (D[0-9]+)$/\ \ \1 (http:\/\/example.com\/\1.html)/' -- | mail -s "hogehoge" nao

メールが 2 通になってしまうのであまりトラフィックにはよろしくないのだが,そう頻繁ではないのでまあ許してほしい.本文中に元のメールのヘッダが全部入って見苦しいけど,ヘッダ消すのも微妙にどうかと思うので,そのままにしてある.


時間がないときはないなりに,既存のツールを使った冗長で美しくない実装でも動けばよし,と.