1) gnus-offline (Gnus Offline Backend Utility)って何? これは Semi-gnus でメッセージをより容易にオフライン環境で扱うためのユー ティリティです。 主として Semi-gnus の `Agent' と呼ばれる機能のために書か れています。 また、gnspool などの外部プログラムを用いた nnspool でも使うことができま す。また、別途配布の Miee.el を送信に使用することも可能です。 ;; gnus-offline を使わなくてもオフラインでの読み書きは出来ますが、 ;; gnus-offline を使えばより設定・操作が簡単に出来ます。 具体的には ・動作に必要な変数の対話的設定が可能 ・グループバッファで“g”とタイプするだけで ダイアルアップ->メイルおよび ネットニュースの送受信->ダイアルアップの切断 という動作を一気に行うこと が可能になります。(ただし接続・および切断は別途専用のツールが必要です) なお、このドキュメントでは主に T-gnus 6.10.56 以降のバージョンに附属する gnus-offline.elについて、送受信ともに gnus-agent を使うことを前提に解説 します。(古いバージョンとは異なる部分がありますのでご注意ください) 2) インストール T-gnus をお使いの場合、gnus-offline.el は特に何も考えなくても T-gnus と 同時にインストールされます。そうでない場合は load-path の通ったディレク トリに gnus-offline.el と gnus-ofsetup.el を(バイトコンパイルして)置きま す。 3) 使い方 ・Semi-gnus の一般的な使用方法について info などで調べて設定してください。 ・以下のコードを .emacs に加えます。 (load "gnus-ofsetup") (gnus-setup-for-offline) (load gnus-offline-setting-file) ・以下のコードを .gnus に加えます。 (gnus-agentize) ・Emacs を再起動します。すると、gnus-ofsetup.el が起動しますので、対話的 に必要な変数の設定を行います。(何を入力したらいいかわからない場合は 4) を参照するか、TAB で入力可能な候補を一覧表示させるかしてください)すべて 設定するとホームディレクトリに .gnus-offline.el というファイルが出来上が ります。 ・このあと一旦オンラインでサーバーに接続して、購読するグループを決めてく ださい。(詳しい方法は Gnus の info を見てください) ・.gnus に以下のコードを加えます。 (gnus-agent-toggle-plugged nil) これで Gnus を再起動すればグループバッファで“g”とタイプすることにより 前記の動作をするはずです。 また、T-gnus 6.10.56 以降のものでは Gnus 自体が複数のメイルアカウントを 扱えます。(6.10.55 以前の T-gnus でも同梱の pop3-fma.el を用いても複数の メイルアカウントを管理することが出来ます。) <<<<<< 注意 >>>>>>>>>>> T-gnus 6.10.56 以降のバージョンには pop3-fma.el は含まれていません。バー ジョンアップされた方は既存の pop3-fma.el の設定は外してください。 (既存の .gnus-offline.el を消すのがもっとも簡単です) 【〜6.10.55】 ・pop3-fma-spool-file-alist     '( ("po:アカウント1@popサーバ1" pass) ("po:アカウント2@popサーバ2" pass) : : )) ・pop3-fma-movemail-type メイル受信に movemail.exe を使う('exe)か pop3.el('lisp) を使うか。 【6.10.56〜】 代わりに以下のような設定がされます。 ・gnus-offline-mail-source '( (pop :user "manbou" :server "pop.ceres.dti.ne.jp") (pop :user "imp9397" :server "mvb.biglobe.ne.jp")     …………………… ) 3) gnus-offline で設定可能な変数一覧 ・gnus-offline-dialup-program ダイアルアップするプログラム名 ・gnus-offline-dialup-program-arguments ダイアルアッププログラムの引数のリスト 例えば、gnus-offline-dialup-program に "-s AAA" を渡す場合は (setq gnus-offline-dialup-program-arguments '("-s" "AAA")) と記述してください。 ・gnus-offline-hangup-program 回線を切断するプログラム名 ・gnus-offline-hangup-program-arguments 切断するプログラムの引数のリスト 例えば、gnus-offline-hangup-program に "-s AAA" を渡す場合は (setq gnus-offline-hangup-program-arguments '("-s" "AAA")) と記述してください。 ・gnus-offline-mail-spool-directory 送信メールのスプールディレクトリ Offline 状態で Mail を送信すると一旦ここで指定したディレクトリに保存され ます。 MIEE を使用する場合以外無効です。 ・gnus-offline-news-spool-directory 送信ニュースのスプールディレクトリ Offline 状態で News を送信すると一旦ここで指定したディレクトリに保存され ます。 MIEE を使用する場合以外無効です。 ・gnus-offline-mail-treat-environ Mail の送信を Online/Offline で行う事を切り替える ・gnus-offline-articles-to-fetch fetch する記事を切り替える both->mail->news->both... 'both ... Mail/News を両方受信 'Mail ... Mail だけ受信 'News ... News だけ受信 デフォルト値は 'both です。 ・gnus-offline-popup-menu メニューを使うかどうかを指定します。デフォルトは "t" です。 ・gnus-offline-load-hook gnus-offline が load されるときに評価される hook ・gnus-offline-before-online-hook Online job 直前に評価される hook ・gnus-offline-after-online-hook Online job 終了直前に評価される hook ・gnus-offline-interval-time Online job を行う間隔(分) Emacs が idle 状態になってからここで指定した時間毎に Online 状態にし Mail/News を取得します。 ・gnus-offline-MTA-type Message を Online 時に送信するプログラムのタイプで、デフォルトは 'smtp です。 'smtp ... smtp.el を使用 'sendmail ... sendmail.el を使用 ・gnus-offline-drafts-queue-type 送信メッセージをキューに溜めるもののタイプで、デフォルトは 'miee です。 'miee は miee.el を使用. 'agent は gnus-agent.el を使用. ・gnus-offline-after-empting-spool-hook 送信メッセージのキューを空にする前に評価される hook ・gnus-offline-before-empting-spool-hook 送信メッセージを送信後に、空になった後評価される hook ・gnus-offline-dialup-function 接続に使用する関数名 ・gnus-offline-hangup-function 切断に使用する関数名 ・gnus-offline-mail-source メールサーバー、ユーザー名のリスト ・gnus-offline-pop-password-file ユーザー名、メールサーバー、パスワードを保存するためのファイル名 ・gnus-offline-pop-password-decoding-function パスワードを保存する際の暗号化を行うための関数。 4) gnus-offline M-x で実行可能なコマンド一覧 ・M-x gnus-offline-toggle-plugged offline 状態/Online 状態を切替えます。 ・M-x gnus-offline-toggle-auto-hangup offline 状態にします。 ・M-x gnus-offline-toggle-on/off-send-mail Online 状態/Offline 状態での Mail 送信状態を切替えます。 Online 状態では直接送信しますが、Offline 状態では一旦 spool に書き込み、 "g" を押した時に全部送信されます。 ・M-x gnus-offline-toggle-articles-to-fetch 取得する記事を選択します。both -> mail -> news -> both ... のように 切り替わります。 ・M-x gnus-offline-toggle-movemail-program movemail プログラムを切替えます。 ・M-x gnus-offline-set-interval-time 記事/Mail の取得、送信を自動的に行う間隔(分)を設定します。 この間隔は Emacs が Idle になってからの時間です。 ・M-x gnus-offline-agent-expire 既読の記事を expire します。 5)【!!!重要!!!】 pop パスワードの管理方法について ;;;バージョンにより異なる部分が多いのでご注意ください。またこの部分は今 ;;;後も改訂されることが予想されます。 <<<<<< 注意 >>>>>>>>>>> T-gnus 6.10.56 以降のバージョンを使用する方は pop3-fma.el は含まれていま せん。Gnus が複数の POP3 アカウントを扱えるようになりましたので、 バージョンアップされる際は既存の pop3-fma.el の設定は外してください。 T-gnus 6.10.55 以前のデフォルトでは pop サーバのパスワードは pop サーバー にアクセスする度に入力する必要があります。(基本的にこのままにしておくこ とを推奨します) しかし、「これだと面倒だしどうせ自分一人しか使わないコンピュータだからそ れほどパスワードの管理には注意を払う必要がない」という場合にはいくつかの (手間を省く)方法があります。ただし、当然パスワードを盗まれる危険は増しま すので以下の方法のいずれかを実行する際には 100% 自己の責任のもとで行って ください。 まず、パスワードをファイルに残しては置きたくないがメモリ上に変数として残っ ていても構わない、という場合は、~/.gnus-offline.el に以下のようなコード を加えてください。 (setq pop3-fma-save-password-information t) こうすることにより、パスワードは Gnus 起動時に入力するだけになります。 (T-gnus 6.10.56 以降のバージョンを使用する方は特に設定しなくてもこれと同 じ状態がデフォルトになっています。) また、ファイルに残しても構わないがメモリ上の変数として残したくない場合、 または全くパスワードの入力を省きたい場合は、.gnus-offline.el の 以下のようなコードを加え、パスワードファイルを 指定します。 (setq gnus-offline-pop-password-file "~/.pop.passwd") また、T-gnus 6.10.56 以降の場合は以下をコメントアウトします。 (require 'read-passwd) (setq mail-source-read-passwd 'read-pw-read-passwd) (add-hook 'gnus-before-startup-hook 'read-pw-set-mail-source-passwd-cache) 指定したパスワードファイル(この例では~/.pop.passwd)を作成し、パスワード の情報を以下のような形式で書きます。 【T-gnus 6.10.55 以前】 (setq pop3-fma-password '(("SERVER1" "ACCOUNT1" "PASSWORD1") ("SERVER2" "ACCOUNT2" "PASSWORD2") ............................ )) 【T-gnus 6.10.56 以降】 (setq mail-source-password-cache '( ("SERVER1:ACCOUNT1:pop3" . "PASSWORD1") ("SERVER2:ACCOUNT2:pop3" . "PASSWORD2") ............................ )) このファイルをうっかり開いてしまってもパスワードが見えないように、 base64 でエンコードすることをお勧めします。その為には M-: (base64-encode-region (point-min) (point-max)) のようにします(M-: は通常 eval-expression に割りあてられています)。 もしここでエンコードしなかったならば、~/.gnus-offline.el に (setq gnus-offline-pop-password-decoding-function nil) と書きます。(ただしこれは非常に危険です。) ~~~~~~~~~~~~~~~~~~~~~~~~~~ ;;; なお、T-gnus 6.10.57 以降では 初回起動時の gnus-ofsetup.el による変 ;;; 数設定の際、(=~/.gnus-offline.el がないとき)パスワードを ;;; ~/.newsrc.eld に保存するかどうか質問され、“y”と答えると保存される ;;; ようになります。ただしこの場合は保存されるパスワードは平文のままなの ;;; でかなり危険であることをご承知のうえお使いください。(上記の方法も使 ;;; えます)