メールをGnusに移行

(この文書はI Transitioned Local E-mail Management to Gnusの和訳版です。

これまでメールはGmailやGoogle Apps(最近はGoogle Apps for Workに変わったんでしたけ)を公私ともに使用しているため、ほとんどGmailのインターフェースで使用していたのですが、ローカルなメール環境に関しては結構模索を行っていました。Mozilla Thunderbirdなども使うことはあったのですが、結構重いのが欠点でした。

個人的には以下のような要件を満たす必要があります。

  1. 大量のメール(数百件/日)を処理できること。全て深く読むわけではないですが、ML内のメールを高速に走査できることが重要。
  2. 一般的なプレーンテキストのメールを処理し送信できる機能(詳細後述)
  3. MacとLinuxを中心に使っている関係上、これらのプラットフォームをサポートしていること。(Microsoft Outlookが絶対に候補に上がらないのはこの理由の他にも過去の苦い経験もあります。上記1番の使用に耐えうるものでもないですし……。
  4. OpenPGPをサポートすること
  5. 複数アカウントをサポートすること(個人・仕事)

基本的には3番目のポイントで選択がかなり狭まりました。それで考えたのは、どうせマルチプラットフォームでEmacsを毎日のように使っているんだからこれで内蔵のものを使っちゃおうということでした。

「こうして越前康介はGnusを手に入れた」

ということ(?)で、個人的にはGnusを使う利点としては以下のようなものでした。

  • 上記の要項を全て満たした。
  • テキスト編集はテキストエディタである関係上、非常に強力な機能を備えている。
  • 隠し事が少ない分、細かい部分まで制御できる。(反対にいうとそれだけ操作性が粗い、ってことですが。)
  • それなりにEmacs Lispをいじったことがあるのでそこそこの改良を加えることができる。
  • Org-modeと連携できる!(リンク設定などが可能。)

今回の検討で考慮に入れなかったのは以下の通り:

  • 検索能力……どうせGmail系なんだから、餅は餅屋に任せるやりかた。結局はある程度の自動タグのほかはフラットに時系列に行っているので数週間前のメールは検索に頼った方が速いので。反対にいうと一覧表示で見つからないほど古いメールは古すぎて役に立たないか、それ以降一度もタッチしないことがほとんどなので、その管理に労力は使ってません。一応残してはいますが。
  • 通知機能……スマフォやスマートウォッチが知らせてくれるので使ってません。一応Gnus内でこれを設定することは可能のようですがあまり意味はなさそうなのでやってません。
  • リッチテキスト編集機能……HTMLやリッチテキストを送ることはないので。自分をよく知っている人ならわかるかも知れませんが、このようなマークアップでのメールは基本的に送信しません。あっても時々シンプルなマークダウンを行うぐらい。自分からのHTMLメールが届いた、という人はそれはほぼ100%、Gmail for Androidがそのように送信してしまったからです。あのアプリ、プレーンテキストしか送れないくせにHTMLメールで送信するんですよね。閲覧はブラウザを通してすることは可能です。普通はHTMLメールは互換形式としてプレーンテキストとしてついてくるので、それを閲覧しますが、プレーンテキスト版がついてくるので時々行儀が悪い(もしくは設定が不完全)なメーラーがHTMLだけで送ってくることがあります。ちなみにそういうメールは無視されるか、良くても閲覧順の最後尾に容赦なく持っていきます。

なので、上記のような機能に興味がある人は多分この記事は面白くないので、さっさとご退場をおすすめします。

さて、複数のGmail/Google Appsのアカウントを使用しているため、SMTPの使い分けが必要になってきます。この実現には
emacs 30 Day Challengeのusing ‘gnus’ to read mailという記事が参考になりました。ここでは自動的にSMTPアカウントを切り替える方法が書かれていますが、送信の規則性が非常に複雑なこともあり、ここは手動処理の余地を個人的には残しています。つまり、X-Message-SMTP-MethodやFromの変更をする方式になっています。このサイトに含まれるコードは誤って存在しないアカウントなどからメールを送信しないような対策として使用しています。この設定は以下のような感じです。

(defun gnus-set-mail ()
  (interactive)
  (message-goto-from)
  (kill-whole-line)
  (insert "X-Message-SMTP-Method: smtp smtp.googlemail.com 587 example@gmail.com.com\nFrom: Example \n\n")
  (message-goto-body)
  )

ちなみに、KDEを使っていますが、Ctrl-Alt-TはUnityみたいにターミナルを起動する設定になっていますので、Gnusでのスレッド表示切り替えはC-M-tからC-c C-tに置き換えています。ちなみにこの設定は簡単……。

(define-key gnus-summary-mode-map "\C-c\C-t" 'gnus-summary-toggle-threads)

GnusにはMMLという書式が組み込まれているため、MIME構造を柔軟にいじることができます。例えばMIMEパートを自由に入れたりといったようなことが可能ですが、基本的には添付ファイルの扱いを細かく制御するために使っています。

MIMEパートを設定してみる
MIMEパートを設定してみる

とりあえずはうまく動いていますが、今後は必要に応じて細かい挙動をカスタマイズしていく予定。

Emacsカスタムスプラッシュの設定方法

これまで何回かスクリーンショットを載せたことのある、このEmacsの画面、設定の仕方の問い合わせが何回かあったのでここに掲載しておきます。(Emacsの内蔵機能です。)

emacs-homebrew

 

まずは適当な画像を用意します。恐らく表示できる範囲のものであればどんなサイズの画像でもOKかと思います。ちなみにデフォルトの画像は270×217なので、これに合わせるのがいいかも知れません。ファイル形式はEmacsが対応する画像(どのようにコンパイルされたかによって異なる)のですが通常はXPMが無難かもしれません。

次にM-x customizeで設定画面に入ります。

customize

Searchの項目にfancy splashと検索すると、通常、一つの項目が出てくると思います。通常はDefaultとなっていると思いますが、これをFileに変更し、出てくるFileボックスに先ほど準備した画像のファイル名をフルパスで指定し、設定を保存します。

fancyset

これでC-h C-aを表示するとスプラッシュ画像が設定されているはずです。

Sakura-Con 2013日本人ゲスト担当課におけるソフトウェアの使用

昨年、Sakura-Conの日本人ゲスト担当課においてはOrg-modeを多用したわけだが、今年はそれを推し進め、更に多彩なソフトウェアを採用した。

Emacs/Org-modeの使用に関しては昨年の同じ程度のものであったが、今年はそれに加え、LaTeXとMobileOrgの使用も開始した。

LaTeX書類がどのように使われたか

LaTeXは大小問わず多彩な書類の作成に使用され、これらには議事録やマスタースケジュールブックなどが含まれた。これを実践するに辺り、LaTeXソースそのものの編集はテンプレートの更新程度に留め、Org-modeで行い、それを出力することを重視した。これはOrg-modeで記述されるデータの一貫性を保つことと、また、自分以外のメンバーが書類を更新する必要がある際に、できるだけ負担を減らす意味合いもある。(もちろんEmacsの使い方に関する学習曲線というものは存在するものの、Org-modeの記述の方がLaTeXよりも解読が容易であるため。)また、Org-modeは他のフォーマット、例えばOpenDocumentなどに出力する機能も備えており、共同編集の場合にはそれを行うためのファイルを出力することも可能であった。

書類作成としてLaTeXを採用したことにより、シェルスクリプトを使用することにより、個別に宛てた手紙なども作成することも可能であった。(これはシェルスクリプト経由で個別のジョブに対して違った変数を与えることで実行した。)

もともと手紙に関しては自分以外の担当者により準備されていたが、今回はギリギリまで変更が加えられる可能性があったため、このプロセスを採用することとなったが、この種類の書類に関してはその体裁も非常に重要となるため、ヘッダなどのデザイン要素をPDF部品として準備してもらい、それをLaTeX経由で入力していった。これは日本語と英語で行われ、行末のハイフン処理なども含め、非常にプロフェッショナルな体裁を使用することができた。

MobileOrg

MobileOrgの使用は以前より計画されていたものの、今回は限定的な使用にとどまった。現在のMobileOrg(Android版)の可用性があまり高くなく、まだまだ混乱しやすいものであった。そのため、シンプルなTODO情報をUbuntu Oneサービス経由で同期を行った。こちらに関しては引き続きプライベートな使用を続けており、今後また検証を行う予定である。

Sakura-ConでのOSS使用の今後

尚、この情報に関しては自分が所属する課で限定的に使用したものにとどまり、コンベンション自体が同じシステムを採用しているわけではない。ただし、Sakura-Conのような非営利組織の場合、個人のIT要件がそれぞれことなり、どのようなソフトウェアが個人でインストールされているかがわからないのも事実である。LaTeXを自由に使いこなす技術というのはMicrosoft Officeや、LibreOfficeなどに比べると比較的高いが、複数の環境で同様の体裁を予想できる形で出力できるという利点がある。

今後はオートメーションなどを更に進め、大きなライフサイクルとしての書類管理を目指したいと思う。