| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
wl-draft-config-alist を設定すると、ヘッダやその他の情報に基づい
て、自動的に他のヘッダや本文を変更することができます。
変数 wl-draft-config-alist について説明します。この変数の初期設定
は nil です。
例えば以下のように設定すると、wl-draft-send-and-exit や
wl-draft-send を実行した時にヘッダが変更されます。
wl-interactive-send を non-nil に設定しておくと、送信前に変更点が
確認できるので安心です。
(setq wl-draft-config-alist
'(((string-match "aaa\\.example\\.com$" (system-name))
;; 式がnon-nilなら適用する
(wl-smtp-posting-server . "mailserver-B")
(wl-nntp-posting-server . "newsserver-B")
;; 一時的な変数の設定
)
("^To: .*user@aaa\\.bbb\\.example\\.com"
;; ドラフトバッファのヘッダにマッチすれば適用する
("Organization" . (format "Go %s" my-webpage)))
;; elisp 式が書ける (eval しているだけ)
(top . " ○○です。\n") ;; 本文先頭へ文字列を挿入します
(bottom . "\n以上です。\n") ;; 本文末尾へ文字列を挿入します
))
|
wl-draft-config-alist は次の形式になっています。
'((ヘッダの正規表現 または elisp式
("Field" . 値(elisp式))
(variable . 値(elisp式))
(サブ関数 . 値(elisp式))
関数
...)
(ヘッダの正規表現 または elisp式
("Field" . 値(elisp式))
...))
|
[サブ関数]には、デフォルトで以下の13個を用意しています。
'header: ヘッダの末尾に指定した文字列を挿入します。
'header-top: ヘッダの先頭に指定した文字列を挿入します。
'header-file: ヘッダの末尾に指定したファイルを挿入します。
'x-face: 指定したファイルの内容を持つ `X-Face:' フィールドを
挿入します。
'top: 本文の先頭に指定した文字列を挿入します。
'top-file: 本文の先頭に指定したファイルを挿入します。
'body: 本文を指定した文字列に置き換えます。
|
また、これらを定義しているのは wl-draft-config-sub-func-alist で
あり、定義を変更したり自分で作った関数を追加することができます。関数の書
き方はここで説明するより直接コードを見た方が分かりやすいでしょうから、省
略します。
各要素の1番目には ヘッダの正規表現 か elisp 式 を指定します。elisp 式の場合は評価した値が non-nil の場合に適用されます。
また、デフォルトでは複数の要素がマッチまたは non-nil になった場合に、その
全てが適用されます。ここで、変数 wl-draft-config-matchone を
t にしてあれば、最初にマッチした1つだけを適用することもできます。
要素の2番目には cons か関数の list を指定します。cons にはヘッダの Field か変数、サブ関数を指定します。Field を指定した場合はその Field を変更し、 変数を指定した場合は一時的にその変数値を変更します。
値には文字列や変数の他、elisp式をそのまま記述することもできます。もし、
Field の値が nil ならばその Field を削除します。
つづいて、次の例を見て下さい。
(setq wl-draft-config-alist
'((reply ;; (1)
"X-ML-Name: \\(Wanderlust\\|emacs-mime-ja\\|apel-ja\\)"
;; 返信元バッファのヘッダにマッチすれば適用する
(body . " こんにちは\n")
(template . "default")
)))
|
この例 (1)のように、ヘッダの正規表現の前に reply をつけると
wl-summary-reply などでドラフトを作成した場合、返信元のヘッダにマッ
チすれば適用されるようになります。ただし、wl-draft を実行したとき
など返信元のバッファがない場合は無視されます。
親フォルダの名前を利用したい場合には、バッファローカル変数
wl-draft-parent-folder を利用できます。次の例では、ドラフトを開く時に
居たサマリバッファのフォルダ名によって From を変更します。
(setq wl-draft-config-alist
'(((string-match \".*@domain1$\" wl-draft-parent-folder)
(\"From\" . \"user@domain1\"))
((string-match \".*@domain2$\" wl-draft-parent-folder)
(\"From\" . \"user@domain2\"))))
|
何も特別な設定をしなければ、wl-draft-config-alist は、
wl-draft-send-and-exit か wl-draft-send が実行される直前に
一度だけ適用されます。送信を取りやめた後に再度
wl-draft-config-alist を適用したい場合は、C-c C-e
(wl-draft-config-exec) を実行してください。
wl-draft-send-and-exit、wl-draft-send の実行時に自動的に
wl-draft-config-alist を適用したくない場合は、次のように設定して
下さい。
(remove-hook 'wl-draft-send-hook 'wl-draft-config-exec) |
ドラフトバッファの作成時に自動的に
wl-draft-config-alist を適用したい場合は、次のように設定します。
(add-hook 'wl-mail-setup-hook 'wl-draft-config-exec) |
サマリモードから 'E'(wl-summary-reedit)を押してメールを
編集する時にも自動的に wl-draft-config-alist を適用したい場合は、
次のように設定します。
(add-hook 'wl-draft-reedit-hook 'wl-draft-config-exec) |