依存度増加中

またまたEmacsです。今度はメール環境を構築してみようと(止せばいいのに)チャレンジしたのです。導入したのはWanderlust。こいつでiCloudメールを使えるようにしようではありませんか、というのです。

結論を言えば、動作しています。特に問題もないようです。ただ、私のやり方が妥当なのかどうかについては自信がありませんので、まかり間違って私のようなボンクラの言うことを真に受けて試そうとする前に数回の深呼吸をお勧めします。

尚、今回の作業にあたり、以下のサイトを参考にしました。ありがとうございます。

さて、マニュアルページを見てみると、幾つか予めインストールしておかなければならないモジュールがあるようです。

私は以下のバージョンのものを利用しました。

  • apel-10.8
  • flim-1.14.9
  • semi-1.14.6

これらをそれぞれインストールします。

% tar xvzf apel-10.8.tar.gz
% cd apel-10.8
% make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs 
% make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs install
% cd ..
% tar xvzf flim-1.14.9.tar.gz
% cd flim-1.14.9
% make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs 
% make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs install
% cd ..
% tar xvzf semi-1.14.6.tar.gz
% cd semi-1.14.6
% make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs 
% make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs install
% cd ..

なんか、こういうのって、もっとサクサクっとやっつける手段があるのでしょうね。私はボンクラなので一個一個素直にやってしまいましたが・・・。

ええと、気を取り直してWanderlust本体です。なんか、配布されているURLが変更になったみたいで少し探しましたが、以下のURLよりダウンロードしました。

ftp://ftp.ring.gr.jp/pub/elisp/wl/stable/wl-2.14.0.tar.gz

インストールは上記のモジュールたちと同様で大丈夫なようです。

% tar xvzf wl-2.14.0.tar.gz
% cd wl-2.14.0
% make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs 
% make EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs install

そして、おもむろに~/.emacs.d/init.elに追記します。

;; wanderlust
(autoload 'wl "wl" "Wanderlust" t)
(autoload 'wl-other-frame "wl" "Wanderlust on new frame." t)
(autoload 'wl-draft "wl-draft" "Write draft with Wanderlust." t)

返す刀(?)で、~/.wlファイルを作成します。

(setq wl-from "hogehoge <hogehoge @me.com>")
(setq wl-local-domain "localdomain.local")
(setq wl-message-id-domain "hogehoge@me.com")

;; IMAP4設定
(setq elmo-imap4-default-server "imap.mail.me.com")
(setq elmo-imap4-default-user "hogehoge@me.com")
(setq elmo-imap4-default-authenticate-type 'clear)
(setq elmo-imap4-default-port '993)
(require 'tls)
(set-alist 'elmo-network-stream-type-alist "!opentls"
           '(opentls nil open-tls-stream))
(setq elmo-imap4-default-stream-type 'opentls)

;; 日本語IMAPフォルダのための設定
(setq elmo-imap4-use-modified-utf7 t)

;; SMTP設定
(setq wl-smtp-connection-type 'starttls)
(setq wl-smtp-posting-port 587)
(setq wl-smtp-authenticate-type "plain")
(setq wl-smtp-posting-user "hogehoge@me.com")
(setq wl-smtp-posting-server "smtp.me.com")
(setq wl-pop-before-smtp-user 'UserID);
(setq smtp-end-of-line "\r\n")

(setq mime-edit-split-message nil)
(setq wl-temporary-file-directory "~/.emacs.d/tmp/")
(setq elmo-localdir-folder-path "~/.emacs.d/mail/")
(setq wl-fcc "%Sent Messages")
(setq wl-fcc-force-as-read t)
;; 下書きのセーブがうっとおしかったので、ローカルに保存するよう変更
;; (setq wl-draft-folder "%Drafts")
(setq wl-draft-folder "+drafts")
(setq wl-trash-folder "%Deleted Messages")
(setq elmo-enable-disconnected-operation t)
(setq wl-draft-enable-queuing t)
(setq wl-auto-flush-queue t)

最後に.foldersファイルにて読み込むメールフォルダを指定します。

%INBOX "受信"
%Sent Messages "送信済み"
%Archive "アーカイブ"
%Deleted Messages "ゴミ箱"
%Junk "迷惑メール"

まぁ、各種設定項目についてはマニュアルページをご参考ください。

さぁて、これでM-x wlでWanderlustが起動します。起動するはずです。私の場合は起動しました。受信メールを読んだりできました。ただ、送信ができなかったのです。理由はどうも、gnutlsという、ええと、何だ、名前から察するにTLS接続の際に必要なのか? のコマンド(gnutls-cli)が必要なのだとか。

GnuTLS – Wikipedia

GnuTLS(GNU Transport Layer Security Library; グヌーティーエルエス)はSSL/TLSプロトコルのフリーな実装である。アプリケーションがネットワーク通信層を越えて安全な通信プロトコルを利用できるようAPIを提供することを目的とする。

どうすれば楽に対処できるか悩んだ後、homebrewというパッケージ管理システムを利用するのが楽そうだという結論となりました。

Mac Explorer| Homebrew – Mac OS X 用スマートなパッケージ管理システム

Mac OS X で利用可能なパッケージ管理システム。にわかに流行って(?)きているので私も導入してみました。
パッケージ管理に多くのユーザーに使われているものにMacPortsがありますが、それよりもよりスマートに動く、というもの。
MacPortsはとても扱いやすく管理パッケージも豊富でかなり便利なのですが、初めからMacに装備されているものも考慮せずに新しくアプリケーションをインストールするという性質があります。例えばMacPortsでインストールしようとしたパッケージがPerlに依存するものの場合、標準で Perl 5.10 が入っている上で依存パッケージとして新規にPerlをインストールする、という形。
その点このHomebrewはMacに標準でインストールされているものはそのまま利用するという賢い仕組みを持っています。

homebrewのインストールは、ターミナルからコマンドライン一発です。(途中、パスワードを聞かれたりしますが)

% ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

これでしばらく待てば、Installation successful!と表示され、brewコマンドが使えるようになります。そしたら、まずはアップデート。

% brew update

次に、gnutlsのインストール。

% brew install gnutls

自動的に依存するライブラリとかをダウンロード→インストールしてくれます。やっぱパッケージ管理システムは便利だよなぁ、とか思っているとエラーで止まりました。どうも、gnutlsのファイルがが見つからなかったとかみたいですね。とりあえず、homebrewがどこからファイルを引っ張ってきているのか見てみます。

2012-02-06追記:
最新のhomebrewでは特に何もしなくてもgnutlsがインストールされました。よって、きちんとbrew updateをしていれば書き換えなくても大丈夫なはずです。

% brew edit gnutls

※一部抜粋

homepage ‘http://www.gnu.org/software/gnutls/gnutls.html’
url ‘http://ftpmirror.gnu.org/gnutls/gnutls-2.12.14.tar.bz2’

うん、上記URLを確認したところ、確かにNot foundです。仕方がないので、探し出して書き直します。

※書き換えた

homepage ‘http://www.gnu.org/s/gnutls/’
url ‘http://ftp.gnu.org/gnu/gnutls/gnutls-2.12.14.tar.bz2’

URLは異なるけれど同一バージョンなのでMD5値には手を加えません。面倒だから。まぁ、brew installでインストールできましたから、多分大丈夫でしょう。

さて、これで目出たくgnutlsもインストールできました。これで晴れてメールの送受信が可能となります。まだ数日しか使っておりませんが、今のところ問題はない(稀にフォルダ更新に時間がかかりますが、原因は不明。me.comのせい?)ようです。

いやぁ、長かった。Emacsでメールをやり取りするのに、こんなに苦労するとは。でも、これでまたEmacsで完結できるようになりました。先日のorg-modeといい、Emacsがエディタではなく環境だ、というのを徐々に実感しています。