LoginSignup
3
2

More than 3 years have passed since last update.

mu4eでEmacsでのメール送受信を実現する方法

Last updated at Posted at 2020-07-19

はじめに

メールはSparkというメールクライアントを使えばいい。それでもmu4eを取り上げるのはEmacsでできることは全てやってみたいから。今回はメールを使いたい、ただそれだけだ。

ただし、Emacs見習いの自覚のある諸兄らは以下の点に留意されたい。
1. Emacsでメールを使う方法はこの記事であげる限りではない。
2. mu4eのユーザーマニュアルは英語だが読むべし。
3. ターミナルでの設定やテストも必要となる。

設定ファイル(.offlineimapや.msmtprcなど)については取り上げない。
落ちているものを拾った結果、ほぼそのまま利用可能と判断したため。

ほとんどmu4e本家公式サイトに書いてあるとおりだが、日本語で書いておく価値はあるのかもしれない。

執筆時の環境

  • MacOSX Catalina 10.15.5
  • Emacs 26.3 (Spacemacs 0.300.0 develop)
  • mu stable 1.4.10
  • offlineimap-7.3.3
  • msmtp: stable 1.8.11

2021年現在、普通のEmacs27を使用中。もちろん使える。

更新履歴

  • 2020/07/19(SUN): 新規作成
  • 2021/02/25(THU): 章、「0. 必要条件」を追加

TODO:メールの暗号化については後日、追記する。
TODO:受信メール更新時のエラーをなんとかする。

0. mu4eが動く必要条件:

  1. Emacs24 >= version
  2. xapian: オープンソースの検索エンジンライブラリ 公式サイト
  3. gmime: MIMEを使用してメッセージを作成および解析するために使用できるC / C ++ライブラリ 公式サイト
  4. gcc: 言わずと知れたコンパイラ&ライブラリ
  5. clang: 言わずと知れたC系言語のコンパイラフロントエンド
  6. GNU Autotool群
  7. make
  8. (option)GTK+, Webkit、Guile

1. メールの送受信に必要なもの

利用するツールの選別はmu4eのユーザーマニュアルに則って決定した。

  • Emacs: エディタとして、mu4eのUIとして使われる。
  • mu: メールのサーチエンジン。
  • mu4e: Emacsでメールを書いて読んで返信する。メールクライアント。
  • offlineimap: オフラインでもメールを読めるようにする。
  • msmtp: メールを送信する。
  • メールアカウント: Gmailやoffice365。複数のアカウントで混合も可。

1-1. プロトコルについて

  • 送信は「SMTP: Small Mail Transfer Protocol」を使って行われる。
  • 受信は「IMAP: Internet Message Access Protocol」を使って行われる。

Gmailの設定ではおそらく初めからIMAPが選択されていると思われるが、一応確認してもらいたい。
「ブラウザのGmail」-> 「右上の:設定」->「全ての設定を表示」->「メール転送と POP/IMAP」->「IMAPアクセス: IMAPを有効にする」

1-2. ツールのインストール

MacOSの場合、全てbrewでインストールできる。たまに依存関係にあるツールが問題を引き起こした例も過去にはある模様。筆者が試したのは2020/07だが特に問題はなかった。

brew
brew install mu
brew install offlineimap
brew install msmtp
.spacemacs
;; 後述にも出てくるが一応
dotspacemacs-configuration-layers
   '(
     (mu4e :variables mu4e-installation-path "/usr/local/share/emacs/site-lisp/mu4e/")
    )

muの「--with-emacs」は指定できない。

以前はできたようだがこのオプションは削除されたようだ。 このオプションが実際に何をしていたのかは知らないが、mu4eの設定として「mu4e.el」の場所を教えてあげれば問題ないようだ。

「--with-emacs」のオプションを付けるように、Spacemacs公式のドキュメントにも書いてあるし、他のブログなどにも書いてあるので、七度尋ねて人を疑う純朴なタイプの筆者はかなり時間を取られてしまったが、実際に動いているのだからいいじゃないか。

そう言えば、monoというものをインストールすると問題が解決したという記事を見かけたので一応入れて見た。特に邪魔にもならないので当分入れたままにしてみるとする。
brew install mono

command
# 初めてやることを想定して説明
updatedb
# databaseが無いと言われたら下記のようなコマンドを打つように言われるので、コピーして実行
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
#DBを作成し始める。あなたの環境によっては時間がかかるかもしれない。
locate mu4e.el

mu4e.elを見つけたら

.spacemacsに設定を書く。user-configに書くか、layerの部分に書くかは試してないのでなんとも言えないが多分どちらか一方でも良い。ただuser-config部分は後から読み込まれるので先にどちらかと言えばlayerには在り処を教えてあげたほうが何かといいのかもしれない。

.spacemacs->dotspacemacs-configuration-layers
(mu4e :variables mu4e-installation-path "locateで見つけたパスを書く")
# /usr/local/share/emacs/site-lisp/mu4e/ になると思われる。
.spacemacs->user-config
(use-package mu4e
  :load-path "/usr/local/share/emacs/site-lisp/mu4e/")

1-3. 設定について

前述の通り詳しくは取り上げないが注意点をいくつかあげたい。

Gmailの場合 (というかGmailしか調べてない)

アプリパスワードを使おう。-> Gmailヘルプ: アプリパスワードでログインする
メールサーバの情報など。-> Gmailヘルプ: 他のメール プラットフォームで Gmail のメールをチェックする

意外とわからないのがアカウント名とユーザー名とメールアドレス。実際には全部同じなので、メールアドレスを入れておけば問題ない。 パスワード部分はアプリパスワードを入れよう。

Spacemacsがエラーを出す

user-configに書くmu4eの設定でエラーが出る。
mu4e.elの中身を見れば良いのだが、Dont think, feel.が信条の筆者はとりあえずコメントアウトした。それでも動いているからいいじゃない。

エラーになるのは下記の部分。

.spacemacs
(use-package mu4e
    :ensure t ;;何故かこれがあると「mue4-」という名前のパッケージはない。とご立腹。

    (setq mu4e-maildir "~/Maildir") ;;何故かこれがあるとエラーになる。

    ;; 下記は「--fromと--read-envelope-fromは両方同時に設定できない」とご立腹。
    (setq message-sendmail-extra-arguments '("--read-envelope-from"))

    ;; 送信時にエラーになる。意味不。
    (setq message-sendmail-f-is-evil)
)

ensureの部分のエラーが一番理解不能。この辺りはぼちぼち解明していきたい。

2. mu4eの使い方、キーバインド

mu4eには3つのモードがある。main-view, header-view, message-viewだ。
headerとmessageを行き来するのは「y」で行う。
新規作成のcomposeでは送信せずにmain-viewへ戻りたい場合は、「C-c C-k」でバッファをキルすれば戻れる。

基本的にmain-viewでの操作。

動作 キー 補足
起動 M-m a M C-x mで一気に新規作成までいける。
新規作成 C 続けてアカウントを選択する
新規作成から戻る C-c C-s or C-c C-k 送信するかバッファをキルする
未読メールを見る bu headerへ戻るのはy
今日きたメールを見る bt headerへ戻るのはy
最後の7日間のメールを見る bw headerへ戻るのはy
画像つきメール? bp 要調査
バッファをキルする q viewをキルすると前のviewへ戻る
メールを更新 U 今のところエラー出てるっぽい

全部は書ききれないので割愛するが、マニュアルも内蔵されていてキーバインド についても書かれているので参考に。
M-x mu4e-diplay-manual

3. mu4e-alert

Work In Progress.
メールが届くたびに教えてくれるやつ。いらないかも。。。草

4. メールの暗号化

Work In Progress.
GnuPGを使いたい。

むすび

色々とハマったがとりあえずメールの送受信はできている。
エラーがまだある。なんとかする。
やっぱりメールの暗号化をしないといけない。だってかっこいいじゃん。
つづく。

参考文献

@本家系

@設定系

@暗号系

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2