Wanderlustで自分宛てのメールをGMailのように「>」で強調する
GMailで言う自分宛てのメールであれば, メール一覧の画面で「>」のようなマークをつけてくれて一発で分かる機能を追加ってだけ.
Wanderlustでの唯一の不満点やった.
ちょっと調べて解決してみた.
コード
こんなコードを追記した.
ぐぐったらそれっぽいコードが出てきたんだけど, そのままじゃ上手く動かなかったので, 自分用に修正した.
dolistの部分でlistじゃねーぞって怒られたんだよね.
以下ので大丈夫なはず.
自分宛てのメアドが複数ある場合,
特にGMailで「アカウント名+〜@gmail.com」とか「アカウント名+〜@googlemail.com」とかの形式を使っているなら,
wl-user-mail-address-regexpの設定は必須.
;; 自分宛てのメアドを示す正規表現 (setq wl-user-mail-address-regexp "ほげほげ〜ふがふが〜") ;; 追記(ちょっと下)に修正版のコードがあります ;; ;; 自分宛てのメールであれば, 「>」を返す ;; (defun wl-summary-line-for-me () ;; (if (catch 'found ;; (let ((to (elmo-message-entity-field wl-message-entity 'to)) ;; (cc (elmo-message-entity-field wl-message-entity 'cc))) ;; (when (or (stringp to) cc) ;; (setq to ;; (append (if (stringp to) (list to) to) ;; (when cc ;; (if (stringp cc) (list cc) cc))))) ;; (dolist (i to) ;; (when (wl-address-user-mail-address-p i) ;; (throw 'found t))))) ;; ">" ;; "")) ;; 一覧表示での置き換え規則に追加 (add-to-list 'wl-summary-line-format-spec-alist '(?> (wl-summary-line-for-me)) t) ;; 一覧のフォーマットに追加 (setq wl-summary-line-format "%n%T%P%1@%1>%M/%D(%W)%h:%m %t%[%17(%c %f%) %] %s")
これはあると意外と便利やと思う.
機能とは関係ないけど, catch〜throwって便利だねえ.
追記
あーちょっぴり修正.
自分宛てなのに何故か「>」がつかないなあってのがあって, 調べたら直せたので追記.
修正点は、eword-decode-stringとしてメールアドレスをデコードしてる点.
これが無いと, たぶんマルチバイト文字が入ってるメールアドレス「ほげほげ <...@...>」のようなのは、
何らかの形式にエンコードされてて正規表現にマッチしなくなっちゃう.
(defun wl-summary-line-for-me () (if (catch 'found (let ((to (elmo-message-entity-field wl-message-entity 'to)) (cc (elmo-message-entity-field wl-message-entity 'cc))) (when (or (stringp to) cc) (setq to (append (if (stringp to) (list to) to) (when cc (if (stringp cc) (list cc) cc))))) (dolist (i to) (when (wl-address-user-mail-address-p (eword-decode-string i)) (throw 'found t))))) ">" ""))
いまのところこれでおkっぽいかな?
さらに追記
古いコードをいちおうコメントアウトしておいた.
更新時刻
- 1かいめ 2008年, 2月7日, 3:52
- 2かいめ 2008年, 2月7日, 4:16
- 3かいめ 2008年, 2月14日, 2:27