2007年12月 8日
wl-user-mail-address-regexp
[ カテゴリ:
Emacsen
]
Wanderlustでは一般的にwl-user-mail-address-listに自分のメールアドレスを列挙します。しかし、plusなんかを使っているとこれでは対応しきれないので、wl-user-mail-address-regexpを使うことになります。これもリストにして欲しいんだけどな…
さて、これはこれでいいんですけど、replyするときに届いたメールに基づいてFromを変える、なんていう器用なことがとてもしにくい。これをなんとかしましょう、です。
この辺のコードは結構混沌としてるんですが、まあ以下の感じ。
(defun wl-summary-user-mail-address ()
(save-excursion
(catch 'user-mail-address
(when (buffer-live-p reply-buf)
(set-buffer reply-buf)
(mapc
(lambda (address)
(when (wl-address-user-mail-address-p address)
(throw 'user-mail-address address)))
(append (wl-parse-addresses (std11-field-body "From"))
(wl-parse-addresses (std11-field-body "To"))
(wl-parse-addresses (std11-field-body "Cc")))))
wl-from)))
(setq wl-draft-config-alist
'((t
("From" . (wl-summary-user-mail-address)))
;; あとはふつう通りお好みで
))
;; draft bufferの生成時にconfig-alistを処理
;; このタイミングじゃないとreply-bufは見えないので実は必須
(add-hook 'wl-mail-setup-hook
(lambda ()
(unless wl-draft-reedit
(wl-draft-config-exec wl-draft-config-alist))))
もうちょっときれいにできそうだけどね。
追記
初出のコードでは、新規メール作成のときにエラーになってましたので、なおしました。