header

2012年11月11日日曜日

Mewで複数のGmailアドレスを使う方法

EmacsのメールソフトMewの設定でGmailの設定はググればありますが
複数のアドレスを使うのはなかったように思うので書いてみます。

いきなりコードから、、、

下のコードをあなたの.mew.elや.emacsなどに貼りつけてください。

;;; -*- coding: utf-8 -*-

;; If first time what use the mew,
;; perhaps you should update state that type by C-u Z

(eval-when-compile (require 'cl))
(require 'mew)
(require 'notifications nil t)

(defvar my/mew-gmail-prefixes '()
"Specify list as title and address without @gmail.com.
Note: the default title can't changed
For example
'((\"default\" \"foo\") ; if your mail address is 'foo@gmail.com'
(\"sub\" \"bar\")
(\"temp\" \"baz\"))")

(defun my/biff-function (n)
(when (< 0 n)
(if (version< "24.0.0" emacs-version)
(notifications-notify :title "Emacs/Mew"
:body (format "You got mail(s): %i" n)
:timeout 5000)
(mew-biff-bark n))))

(defun mew-spam-assassin-or-bsfilter (val)
(let ((case-fold-search t))
(if (string-match "yes" val) ?D)))

(defun my/generate-mew/gmail-alist-from (mail-prefix)
(let ((inbox-name (concat "+inbox-" mail-prefix))
(address (concat mail-prefix "@gmail.com")))
(loop for property in '("user" "imap-user" "smtp-user")
for alist = `(,(cons "inbox-folder" inbox-name)) then alist
collect (cons property mail-prefix) into alist
finally return alist)))

(setq mew-ssl-verify-level 0
;; Does not bring mail automatically at booting time
mew-auto-get nil
;; Leave mail of pop server after get mail
mew-pop-delete nil
;; Add extension ".mew"
mew-use-suffix t
;; Manage unread topic
mew-use-unread-mark t
;; Spam configuration
mew-spam: "X-Spam-Flag:"
mew-inbox-action-alist
'(("X-Spam-Flag:" mew-spam-assassin-or-bsfilter))
;; Register password briefly
mew-use-cached-passwd t
;; Does not bring mail at booting time
mew-auto-get nil
;; For Biff
mew-use-biff t
mew-use-biff-bell t ; use alarm
mew-biff-interval 10 ; minute
mew-biff-function 'my/biff-function)

(defvar mew/gmail-default-alist
`(("proto" . "%")
("name" . ,(user-full-name))
("mail-domain" . "gmail.com")
("imap-trash-folder" . "%Trash")
("imap-spam-folder" . "%SPAM")
("fcc" . "%Sent")
("imap-server" . "imap.gmail.com")
("imap-auth" . t)
("imap-ssl" . t)
("imap-ssl-port" . "993")
("smtp-auth" . t)
("smtp-ssl" . t)
("smtp-ssl-port" . "465")
("smtp-server" . "smtp.gmail.com")
("use-smtp-auth" . t)))

(defun my/mew-create-alist (list)
(loop with alist = '()
for (title account) in list
collect `(,title
,@mew/gmail-default-alist
,@(my/generate-mew/gmail-alist-from account))))

;; Switch to account by types "C" and renew summary by types "i"
(setq mew-config-alist
(my/mew-create-alist
my/mew-gmail-prefixes))

メールアドレスを.emacsなどの設定ファイルに保存する

これはあなたの@gmail.com無しのgmailアドレスを設定してください。
なおdefaultのメールアドレスがMewを起動した時に最初に立ち上がります。

(defconst my/mew-gmail-prefixes
'(("default" "gmail_no_adrress")
("sub" "gmail_no_adrress2")
("ad" "gmail_no_adrress3")))

切り替え方

Mewを起動したあとにC(mew-summary-set-case)をタイプすると
Case value(default): などとミニバッファにでるので
ここでmy/mew-gmail-prefixesで設定したタイトルにします。
上の例だと"sub"や"ad"でそれぞれ"gmail_no_adrress2","gmail_no_adrress3"
に切り替わります。
切り替わってもメールを再取得はしないので"i"をタイプして新規メールを取得してみましょう。

おまけのメール通知

最初にコピペしてもらったコードの中にさりがなくメール通知を表示するコードが入っています。Emacs24を使っているならMew起動後、新規メールを受信した時に画面に通知が出ると思います。(windowsはたぶん無理)

Mewを始めて使う人へ

2013/2月くらいにUbuntu 12.04LTSを入れたのですが
mewを利用する場合stunnelが必要でした。
(私はgithubからcloneした mewstunnel-4.54 を利用しています
apt-get installでstunnelをインストールをしましたがダメでした)
初めて利用するときは、設定してMewを起動したあと"C-u Z"
を押さなければメールを取り込みませんでした。
普段のメール取り込みはsummaryバッファで"i"でできます。

make installしないで使う場合

たぶん非推奨な方法だと思いますが、私は./configure makeしただけで使っています。
この場合、Mew/bin/以下にパスを通す必要があります。
通さない場合mewencodeが利用できないので、一部のメールが文字化けして表示される場合があります。
el-getから利用しているので以下のように設定しています。参考までに…

(el-get-sources
(:name mew
:type git
;; Make sure "~/.gnupg/gpg-agent.conf"
;; and Add mew-pinentry to pinentry-program
;; For example
;; pinentry-program /home/you/.emacs.d/el-get/mew/bin/mew-pinentry
:build ("./configure && make")
:url "https://github.com/kazu-yamamoto/Mew.git"
:load-path "./"))

musterパスワードを利用したい時

何度もパスワードを入れるのが面倒な人は
mew-use-master-passwdをtにすれば、
gnupgを利用してパスワードを保存できます。
私は~/.gnupg/gpg-agent.confのpinentry-programに
mew-pinentryをしました。
(mewのパッケージの/bin/の中に入っていました)
/usr/bin/pinentry-gtk-2を設定していましたが、
なぜかうまく行きませんでした。

pinentry-program /path/to/mew-pinentry


初回はパスワードを求められますが2回目から
~/Mail/.mew-passwd.gpgに保存されたパスワードを利用します。


0 件のコメント:

コメントを投稿

Popular Posts

Blogger templates

Blogger news