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 とか言われそうな。