2011年04月05日(火)
Wanderlust の引用返信時の名前表記の変更
相変わらずメールは Wanderlust で読み書きしております.
Wanderlust では,メールに対して本文を引用した形で返信する際,
At Tue, 05 Apr 2011 22:11:33 +0900, Nao Kawanishi wrote:
のような形で,元のメールの送信日時と,元のメールの送信者の名前が入るようになっています.
本エントリは,「元のメールの送信者の名前」の表記を変更するお話です.
この「元のメールの送信者の名前」(「の」が多くて怒られますが笑)の部分に関しては,Wanderlust のアドレス帳に送信者のアドレスが入っていればその名前(内部的には Petname という扱い)が,アドレス帳に入っていなければ送信者が送信時に From につけた情報が,それもなければメールアドレスがそのまま,入るようになっています.
が,この仕様があまり好みではありません.
アドレス帳に登録されている情報が使われる場合,相手のアドレスをアドレス帳内でどのような名前で管理しているのか,相手に伝えることになります.別に変な名前で登録しているわけではなく,「さん」だったり「様」だったり,相手との関係性に応じて使い分けているだけなのですが,複数の人に対して送信するメールにそういう関係性がにじみ出るのが,個人的に好きではありません.
また,送信者が送信時に From につけた情報は,大抵メールソフト設定時につけた名前で,送信者が自分を表すのに使う表記なので,敬称が付いておらず,引用時にそのまま使ってしまうと呼び捨てしている感じになってしまいます.これもあまり好きではありません.
個人的には一番無機的な識別子であるメールアドレスを使いたいところです.が,本文にメールアドレスがそのまま記載されると,インターネット上に公開されるメーリングリストへの投稿なども考慮すると,メールアドレスそのままじゃなくて,少し変更したかったりします.
そんなわけで,以下のような Emacs Lisp を .wl に忍ばせるようにしました.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; 返信引用時に,「wrote」の部分をメールアドレスだけにし, ;;; さらに @ を (at) に置換する ;;; (defun my-wl-draft-cite () (let ((mail-yank-ignored-headers "[^:]+:") (mail-yank-prefix "> ") date from cite-title) (save-restriction (if (< (mark t) (point)) (exchange-point-and-mark)) (narrow-to-region (point)(point-max)) (setq date (std11-field-body "date") from (std11-field-body "from"))) (when (or date from) (setq fromaddr (nth 1 (std11-extract-address-components from))) (insert (format "At %s,\n%s wrote:\n" (or date "some time ago") (or (if (string-match "@" fromaddr) (replace-match "(at)" nil nil fromaddr)) "you")))) (mail-indent-citation))) (setq wl-draft-cite-function 'my-wl-draft-cite)
wl-draft.el 内の wl-default-draft-cite をベースに変更したものです.メールアドレスの @ を (at) に置き換えて挿入するようになりました.
以前から対応したかったものの,ほったらかしにしていたことだけに,解決してスッキリしました.