commitメールとの格闘
いま仕事で使うソースコードの管理はAmazon EC2に作ったサーバ上のsubversionでやっているんだが、ふと「commitメールくらい出してみるか」と思い立って作業開始したところ事前予想の10倍くらい時間がかかってしまった。以下何をしたかのメモ。
まあいかに自分の手際が悪いかを白状してるだけなんだが誰か同じようなことでつまづくことがないように、ということで。
●このサーバではMTAは動いていない。自分でMTAをセットアップしたことは実はないので不安だし、commitメールのためだけにpostfixとかを用意するのも大げさだ。なので別手段を使おう。
●www.lagarto.co.jp内には、HTTPで所定のフォーマットでPOSTすると中身をメールで出力するrubyスクリプトがある(これは別の用事で昔作って今も使っている)。これを流用して済ましてみよう。
●やってみたらなぜかメール本文が32KB?くらいになるとデータが切れてしまう。理由は不明。やっぱcommit内容のdiffは見たいよなあ、というわけで素直にSMTPを叩くことにする。
●だがSMTPを叩くとアクセス拒否される。そういやlagarto.co.jpのメールサーバはpop before smtpを使うんだった。
●となるとpopクライアントが必要だ。適当に探すとretchmailというのが見つかった。"fast" "stupid"と紹介文にあるし、今回の目的にはこれでいいだろう。
●とりあえずapt-getしてmanページを見る。必要充分な機能を持っているようだ、よしよし。
●サーバ名やパスワード等を~/.retchmail/retchmail.confに書けとあるので、サンプルに従って書いた。
●動かしたら俺のメールボックス内のメールを全部嘗めていってしまった。pop bofore smtpを通したいだけなので認証をパスしたら終了してほしいんだけどなー。そういう動作オプションはないらしい。
●仕方ないのでこれ専用のメールボックスを作ろう。そうすれば中は常に空なので嘗めていっても特に無駄はない。
●メールサーバの設定を変えるためにログインするパスワードが見つからねー。1~2年はアクセスしてなかったからな...。一生懸命探して古いメモを発見、何とかなった。
●あとは、commitメールを送るアカウントにはホームディレクトリがないので、retchmail.confを引数で与えなければならない。が、やっても変なエラーで止まってしまう。
●某世界的機関Gに何度も問い合わせた結果、retchmail -c ini:[retchmail.confのパス] が正解であることがわかる。ini:って何なのよ全く。というかmanページによく見るとヒントは書いてあった。
やれやれやっと望む結果が得られた。
だが、まだcommitログに日本語を入れられない問題が残っている。これはメールとは関係なく、subversionのサーバ側設定かTortoiseSVNのどっちかが誤っているらしいんだが、疲れたので別の日にやる。
最近のコメント