1) gnus-offline (Gnus Offline Backend Utility)って何?

これは T-gnus でメッセージをより容易にオフライン環境で扱うためのユーティ
リティです。

主として T-gnus の `Agent' と呼ばれる機能のために書かれています。

また、gnspool などの外部プログラムを用いた nnspool でも使うことができ
ます。また、別途配布の miee.el を送信に使用することも可能です。

     (*) nspool については info を参照してください。
     (*) gnspool は gn というニュースリーダーと共に配布されています。
     (*) miee.el の最新版は以下の場所から取得できます。
         http://www.shiojiri.ne.jp/%7Et-ichi/meadow.html

;; gnus-offline を使わなくてもオフラインでの読み書きは出来ますが、
;; gnus-offline を使えばより設定・操作が簡単に出来ます。

具体的には

・動作に必要な変数の対話的設定が可能

・グループバッファで“g”とタイプするだけで、ダイアルアップ->メイル
  および ネットニュースの送受信->ダイアルアップの切断 という動作を一気
  に行うことが可能になります。(ただし接続・および切断は別途専用のツー
  ルが必要です)

なお、このドキュメントでは主に T-gnus 6.12.0 以降に附属する 
gnus-offline.el について、送受信ともに gnus-agentを使うことを前提に解
説します。

2) インストール

T-gnus をお使いの場合、gnus-offline.el は特に何も考えなくても T-gnus
と同時にインストールされます。

3) 使い方

・T-gnus の一般的な使用方法について info などで調べて設定してください。

・以下のコードを .emacs に加えます。

        (autoload 'gnus-plugged "gnus-agent" nil t)
        (autoload 'gnus-unplugged "gnus-agent" nil t)

・以下のコードを .emacs に加えます。

	(load "gnus-ofsetup")
	(gnus-setup-for-offline)

・以下のコードを .gnus に加えます。

	(gnus-agentize)

・Emacs を再起動します。すると、gnus-ofsetup.el が起動しますので、対話
  的に必要な変数の設定を行います。
    (何を入力したらいいかわからない場合は 4) を参照するか、TAB で入力
     可能な候補を一覧表示させるかしてください)
  すべて設定するとホームディレクトリに .gnus-offline.el というファイル
  が出来上がります。(*)

      (*) 「POP パスワードを ~/.newsrc.eld に保存するかどうか」質問さ
          れます。これにはよく考慮した上で答えてください。詳しくは 6)
          を参照して下さい。

・このあと一旦 M-x gnus-plugged で Gnus を起動して、購読するグループを
  決めてください。(詳しい方法は Gnus の info を見てください)

  そして 次回からは M-x gnus-unplugged で Gnus を起動してください。グルー
  プバッファで“g”とタイプすることにより前記の動作をするはずです。

・M-x gnus でもオフライン起動して欲しい場合は、.emacs に

	(setq gnus-plugged nil)

  を書いて下さい。もし M-x gnus-plugged を使わないならば、これを .gnus に
  書くという手もあるでしょう。

4) 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-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
  メールサーバー、ユーザー名のリスト

5) 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-set-interval-time
  記事/Mail の取得、送信を自動的に行う間隔(分)を設定します。
  この間隔は Emacs が Idle になってからの時間です。

・M-x gnus-offline-agent-expire
  既読の記事を expire します。


6)【!!!重要!!!】 pop パスワードの管理方法について

「どうせ自分一人しか使わないコンピュータだからそれほどパスワードの管理
には注意を払う必要がない」という場合には入力の手間を省く方法があります。
ただし、当然パスワードを盗まれる危険は増しますので実行する際には 100%
自己の責任のもとで行ってください。

初回起動時の gnus-ofsetup.el による変数設定の際、(=~/.gnus-offline.el
がないとき)パスワードを ~/.newsrc.eld に保存するかどうか質問され、“y”
と答えると保存されるようになります。 (*)

      (*) 実際には ~/.gnus-offline.el に以下のコードが追加されます。

	    (add-hook
	     'gnus-setup-news-hook
	     (lambda ()
	       (add-to-list 'gnus-variable-list 'mail-source-password-cache)))

ただしこの場合は保存されるパスワードは平文のままなのでかなり危険である
ことをご承知のうえお使いください。
