転載・引用について

ユーザ用ツール

サイト用ツール


userapps:emacs:mu4e

文書の過去の版を表示しています。


mu4e

まくら

元々は家でゲームがしたい(小学生のことTAITOのSpace Invaderが大ブームになった)という理由で始めたコンピューターとの付き合いが、いつの間にか人とのCommunicationの手段になったのは、明らかにパソコン通信のせいで、参加していたBBSのChat roomに入り浸るようになってからだったように思う。

Unixを触るようになり、UUCPで自宅に居ながらにして電子メールが使えるようになって以来、数年前までは間違いなくE-Mailこそが他者とのCommunicationの中心にあった。 したがって、筆者の場合、E-Mailの読み書きを簡単にできるようなApplicationが最も重要なツールであった時代が長い。

そのため、メールクライアントは色々使ってきた。それなりの期間(最低でも半年以上)利用したツールは

  • rmail (Emacs)
  • Gnus (Emacs)
  • mew (Emacs) おそらく、これが一番長い
  • Bekky (Windows)
  • WinBiff (Windows)
  • Apple Mail (macOS)
  • Thunderbird (macOS/Windows/FreeBSD)
  • Shylpheed (macOS)

と、幾つもあった。しかし、個人的な要件を満たすMail Readerはあまりなかった。動作するPlatformが限られていたり、表示が望み通りにならなかったり、EoLになったり…

というわけで、Sylpheedを卒業して次のMail Readerに移行することにした。

準備

今回の選択はmu4eである。 mu4eはmuコマンドを利用したメールの検索機能を利用して、Emacs上でMailの読み書きを行うためのツールである。

mu4eを利用してMailを処理するためにはいくつかの方法があるが、今回は以下の構成で行くことにした。

; IMAPを利用して手元にメールを同期するsoftware : mbsync(isync) ; smtpを利用してメールを送信するsoftware : msmtp ; Emacs : GNU Emacs 30 : メール処理 : mu, mu4e

mbsync

mbsyncは、RemoteのMDA(IMAP Server)からメールを手元に持ってくるツールである。 Mailboxの同期をEmacs上で行わないのでメールの取得とメールの処理を独立して行えるのがメリットである。

今回は、複数のアカウントをまとめて管理する前提で設定を行う。

なお、mu4eはメールボックスがありさえすれば良いので、mbsyncである必要はない。imapsyncなどいくつかのツールがあるので、好みのものを選べば良いだろう。

以下、mbsyncの設定を行う。 設定ファイルは以下の通りである。 なお、本記事においては、動作確認なども兼ねているためpasswordをrawで記載しているが、これはGPGなどを利用して暗号化するべきである。

#
# .mbsyncrc	- configuration for mbsync.
#

##### General Configuration
Create		Both
Expunge		Both
CopyArrivalDate	yes
Sync		All
SyncState	*

##### sample@example.com
##### for Dovecot Server
IMAPAccount	sample_example
Host		dovecot.example.com
Port		993
User		sample@example.com
Pass		Ultra-Secret
SSLType		IMAPS

### IMAP Store configuration
IMAPStore	mls_seirios-remote
Account		mls_seirios

### Maildir Store configuration
MaildirStore	sample_example-local
SubFolders	Verbatim
Path		~/Maildir/sample_example/
Inbox		~/Maildir/sample_example/Inbox

### Channel Configuration
Channel		sample_example-local
Far		:sample_example-remote:
Near		:sample_example-local:
Patterns	*

##### sample@icloud.com
##### for Apple Mail
IMAPAccount	sample_icloud
Host		imap.mail.me.com
Port		993
User		sample@icloud.com
Pass		Apple-Application-password-set-at-Apple
SSLType		IMAPS
AuthMechs	PLAIN

### IMAP Store configuration
IMAPStore	sample_icloud-remote
Account		sample_icloud

### Maildir Store configuration
MaildirStore	sample_icloud-local
SubFolders	Verbatim
Path		~/Maildir/sample_icloud/
Inbox		~/Maildir/sample_icloud/Inbox

### Channel Configuration
Channel		sample_icloud-base
Far		:sample_icloud-remote:
Near		:sample_icloud-local:
Patterns	* !Sent !"Sent Messages" !Spam !"Junk" !Trash !"Deleted Messages"

Channel		sample_icloud-base-sent
Far		:sample_icloud-remote:"Sent Messages"
Near		:sample_icloud-local:Sent

Channel		sample_icloud-base-spam
Far		:sample_icloud-remote:"Junk"
Near		:sample_icloud-local:Spam

Channel		sample_icloud-base-trash
Far		:sample_icloud-remote:"Deleted Messages"
Near		:sample_icloud-local:Trash

Group		sample_icloud
Channel		sample_icloud-base
Channel		sample_icloud-sent
Channel		sample_icloud-spam
Channel		sample_icloud-trash

##### sample@gmail.com
##### GMail
##### もし、GmailのIMAP Folderが日本語だった場合、Gmailから表示を英語モードにしておくこと。日本語だとうまくいかないことがある
IMAPAccount	sample_gmail
Host		imap.gmail.com
Port		993
User		sample@gmail.com
Pass		Gmail-Application-password-set-at-Gmail
SSLType		IMAPS
AuthMechs	PLAIN

### IMAP Store configuration
IMAPStore	sample_gmail-remote
Account		sample_gmail

### Maildir Store configuration
MaildirStore	sample_gmail-local
SubFolders	Verbatim
Path		~/Maildir/sample_gmail/
Inbox		~/Maildir/sample_gmail/Inbox

### Channel Configuration
Channel		sample_gmail-base
Far		:sample_gmail-remote:
Near		:sample_gmail-local:
Patterns	* !"[Gmail]*" !Sent !Spam !Trash

Channel		sample_gmail-sent
Far		:sample_gmail-remote:"[Gmail]/Sent Mail"
Near		:sample_gmail-local:Sent

Channel		sample_gmail-spam
Far		:sample_gmail-remote:"[Gmail]/Spam"
Near		:sample_gmail-local:Spam

Channel		sample_gmail-trash
Far		:sample_gmail-remote:"[Gmail]/Trash"
Near		:sample_gmail-local:Trash

Group		sample_gmail
Channel		sample_gmail-base
Channel		sample_gmail-sent
Channel		sample_gmail-spam
Channel		sample_gmail-trash

##### sheo0147@yahoo.co.jp
##### for Yahoo Japan
IMAPAccount	sample_yahoo
Host		imap.mail.yahoo.co.jp
Port		993
User		sample@yahoo.co.jp
Pass		Ultra-Secret
SSLType		IMAPS

### IMAP Store configuration
IMAPStore	sample_yahoo-remote
Account		sample_yahoo

### Maildir Store configuration
MaildirStore	sample_yahoo-local
SubFolders	Verbatim
Path		~/Maildir/sample_yahoo/
Inbox		~/Maildir/sample_yahoo/Inbox

### Channel Configuration
Channel		sample_yahoo-base
Far		:sample_yahoo-remote:
Near		:sample_yahoo-local:

Channel		sample_yahoo-spam
Far		:sample_yahoo-remote:"Bulk Mail"
Near		:sample_yahoo-local:Spam

Group		sheo0147_yahoo
Channel		sample_yahoo-base
Channel		sample_yahoo-spam

ここまで設定したら、Directoryを作成し、mbsync -aを実行する

$ mkdir ~/Maildir
$ mkdir ~/Maildir/sample_example ~/Maildir/sample_icloud ~/Maildir/sample_gmail ~/Maildir/sample_yahoo
$ mbsync -a

これで、手元にMailが来たはず

  • yahooの設定の際にPatternsを削除しているのは意図的である。
    • 原因はよくわかっていないが、Yahooの場合だけ、Patternsを登録しているとInboxの同期に失敗する
    • とりあえずPatternsを設定しなければうまく行くという不思議なことが起きているので、現時点では外す

muの初期化

Mailを取得したら、muでメールのIndexを作成する。 muはXapianを利用している。Xapianは原則としてヨーロッパ系言語の検索が主眼なので、日本語検索は厳しいかと思っていたが、FLAG_NGRAMS=“1”を設定することでそれなりに対応できることがわかったので、以下を設定してmuでDBを初期化する

$ export XAPIAN_CJK_NGRAM="t"
$ export FLAG_NGRAMS="t"
$ mbsync -a
$ mu init --maildir=~/Maildir \
  --my-address=sample@example.com \
  --my-address=sample@icloud.com \
  --my-address=sample@gmail.com \
  --my-address=sample@yahoo.co.jp
$ mu index

msmtp

mu4e

このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
userapps/emacs/mu4e.1723893386.txt.gz · 最終更新: by seirios

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki