久々のemacsネタです。
mewで複数メールアカウントで扱うときにSummary モードにおいて C
で切り替えることが出
来るので非常に便利です。ただし、起動時にdefaultアカウントの選択機能が持っていないので、
mew-init-hookで拡張してみました。
;; アカウント1 (setq my-mew-config-1 (list '(proto "+") '(name "******") '(user "******") ; メールアドレスの@から左部分 '(mail-domain "******") ; メールアドレスの@から右部分 '(smtp-server "******") ; 送信用サーバアドレス '(smtp-port "1025") ; '(smtp-user "******") ; 送信用ユーザid '(pop-server "******") ; 受信用サーバアドレス '(pop-port "1110") ; '(pop-user "******") ; 受信用ユーザid '(pop-delete t) ; メール受信後サーバー側のメッセージを7日を保持する '(pop-auth pass) ; pop3 で受信時の認証方式、指定しない場合はapop方式が使用される '(pop-size 0) ; メールの上限サイズ。0 の場合は上限なし。 '(pop-header-only t) ; [c-u s]でヘッダの みのコピー '(dcc "******") ; 返信時に自分のアドレスをdccに入れる、dccは送信したメールのヘッダーに表示されない '(fcc "+sent") ; 送信したメールの保存先 '(smime-signer "******") ; 電子署名で使用する証明書id '(protect-privacy-always nil) '(privacy-method smime) ; 電子署名タイプの指定 '(draft-privacy-method smime) '(protect-privacy-always-type smime-signature) )) ;; アカウント2 (setq my-mew-config-2 (list '(proto "%") '(name "******") '(user "******") '(mail-domain "gmail.com") '(dcc "*******@gmail.com") '(protect-privacy-always nil) '(ssl-verify-level 0) ;; smtpサーバー '(smtp-user "*******@gmail.com") '(smtp-auth t) '(smtp-ssl t) '(smtp-server "smtp.gmail.com") '(smtp-ssl-port "465") ;; imapを使用する場合 '(inbox-folder "%gmail") '(imap-user "******@gmail.com") '(imap-size 5242880) ; 5m以内即時受信する '(imap-auth t) '(imap-ssl t) '(imap-ssl-port "993") '(imap-server "imap.gmail.com") )) ;;; アカウント3 (setq my-mew-config-3 (list '(proto "+") ;; (中略) )) ;;; アカウント4 (setq my-mew-config-4 (list '(proto "+") ;; (中略) )) (setq my-mew-account-list (list (append (list 'account1) my-mew-config-1) (append (list 'account2) my-mew-config-2) (append (list 'account3) my-mew-config-3) (append (list 'account4) my-mew-config-4))) (require 'dash) ;; アカウント選択処理 (defun my-mew-select-account () (let* ((account-name-list (mapcar (lambda (x) (pp-to-string (car x))) my-mew-account-list)) (selected-account (completing-read "mew account: " account-name-list nil t))) (message selected-account) (setq mew-config-alist (append (list (append (list 'default) (cdr (car (-filter (lambda (mew-config) (string= selected-account (pp-to-string (car mew-config)))) my-mew-account-list))))) (-filter (lambda (mew-config) (not (string= selected-account (pp-to-string (car mew-config))))) my-mew-account-list))))) ;; 起動時に走らせる (add-hook 'mew-init-hook 'my-mew-select-account)
デモ