w3m と wanderlust で mailto スキームをまともに使う

なんで今さら mailto スキームとかどうこうしたいかとかはめんどいので略として、 w3m から wanderlust と通信みたいな。

mailto の RFC はこのへん http://hp.vector.co.jp/authors/VA014833/rfc2368J.html

すんごいざっと見た感じ、 hogehoge@example.com?subject=subj&body=body みたいなんが典型で、 body だけヘッダじゃなくて特殊なものらしい。

とりあえず w3m を --disable-w3mmailer でコンパイルした上で main.c から

	if ((pos = strchr(to->ptr, '?')) != NULL)
	    Strtruncate(to, pos - to->ptr);

コメントアウト。 ? 以下は自力で処理しますから捨てないで下さいっ…!

で、 gnuserv を入れた。そんで .emacs.el に

(gnuserv-start)
(setq gnuserv-frame (selected-frame))

とか入れた。

で、 ~/bin/wanderlust で通信する Ruby script 書いた。

#!/usr/bin/env ruby

require 'cgi'
require 'nkf'

t,hs=ARGV[0].split('?')
h={'To'=>t}
hs.split('&').map{|kv|
  k,v=kv.split('=')
  h[k.capitalize]=CGI.unescape(v)
}

b=NKF.nkf('-e', %Q(\\"#{h.delete("Body")}\\"))

hl=h.map{|k,v|
  %Q(\\"#{k}: #{v}\\")
}*' '

cmd=%Q(gnudoit "(wl-draft '(#{hl}) nil nil #{b})")
system(cmd)

これでまぁだいたい及第点くらいまでは。なんか subject=sbj を指定すると Subject: ヘッダが wanderlust の方に二つ現れちゃってるけど、まぁ別に subject= 使わんしいいか…っていう現状です。

で、目的なんですが、メールで tDiary 更新ってのが便利すぎてたまらんので、人様のところにコメント書く時にメール通せるようにしたいというのが最終目的なのですが、はてさて。よくわからんけどそれ Pla とか言われそうな。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h