|
|
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNU Emacs は単なるエディタ機能だけではなく優秀なメールリーダ、ニュースリー ダ機能をも持っている。Meadow でももちろん UNIX と同様にメールリーダ、ニュー スリーダとして使うことができる。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
GNUS は梅田 政信さんによって作られたニュースリーダである。 Mule2.3/Emacs19.28 には GNUS4.1 が同封されていて、日本語を扱うことのできる Emacs は Mule2.3 であるという時期が長かったので GNUS ユーザは今でも多いようで、 GNUS と言えばこの 梅田GNUS のことであった。
一方、Lars さんによって一から書き直されたものが Gnus で、様々な拡張が行なわれ、 メールリーダの機能も追加された。
したがって GNUS と Gnus は全く別の物であるが、GNUS の持つ先進的なユーザインタ フェースは踏襲されているので見掛け上は似たものとなっている。
Gnusは始めコードネームが付けられ「コードネームversion 0.1」で呼ばれ、ある 程度開発が終わると、Gnus5.x(xは偶数) というバージョン番号が振られる。それ がその後にGNU Emacsに同封される時は、Gnus5.y(yは奇数)というバージョン番号 が振られるようである。
コードネームはアルファベットの逆順になっていて、“梅田GNUS”の“u”から始 まり、現在は Pterodactyl Gnus と呼ばれていて、 次は“o”で始まる予定である。
表
| コードネーム | バージョン | 最初に収録されたEmacsバージョンとその時のGnusバージョン | |
| u | 梅田 GNUS | GNUS 3.1 | GNUS4.1 Emacs19.7 |
| t | ding Gnus | Gnus 5.0 | Gnus5.1 Emacs19.30 |
| s | September Gnus | Gnus 5.2 | Gnus5.3 Emacs19.32 |
| r | Red Gnus | Gnus 5.4 | Gnus5.5 Emacs20.1 |
| q | Quassia Gnus | Gnus 5.6 | Gnus5.7 Emacs20.4 |
| p | Pterodactyl Gnus | Gnus 5.8 |
一方、Semi-gnusプロジェクトは守岡さん の呼びかけにより始まったもので、「GnusでMIME(Multipurpose Internet Mail Extensions)を扱えるように拡張すること」や「Gnusをもっと便利に使うためのさ まざまな拡張」を行なっている。
開発は OpenCVS を使い、コードネームで呼ばれる枝(Semi-gnus, Nana-gnus, Chaos, T-gnus等)ごとにそれぞれ違ったアプローチが行なわれている。これらは anonymous CVSで入手可能で多数の参加メンバーによって動作検証、バグフィック ス、新たな実装提案が行なわれていて、意見交換は主に semi-gnus-ja メーリング リストで行なわれている。semi-gnus-ja メーリングリストは本特集の最後で紹介 しているので興味のある方は参加してほしい。
本特集ではその中の、鈴木 圭一さんがオーナで ある Nana-gnus を取りあげる。 Semi-gnus6.10.12/Gnus 5.6.45 をベースにして 「送信相手によって文字コードを適切に選択する試み」などの拡張が行なわれている。 詳細は Nana-gnus に同封されている Nana-TIPS.ja を参照のこと。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Nana-gnus はメールやニュースの MIME メッセージの読み書きをするのに以下の APEL、FLIM、SEMI と呼ばれる Emacs lisp モジュールを利用している。
原稿執筆時点の最新のものは以下のURLから入手可能である。 今月の LibCD Vol.xx に収録している。
ftp://ftp.etl.go.jp/pub/mule/semi/apel-9.19.tar.gz ftp://ftp.etl.go.jp/pub/mule/semi/semi-1.13-for-flim-1.12/flim-1.12.7.tar.gz ftp://ftp.etl.go.jp/pub/mule/semi/semi-1.13-for-flim-1.12/semi-1.13.4.tar.gz ftp://ftp.jaist.ac.jp/pub/GNU/elisp/chamonix/gnus/nana-gnus-6_12_18.tar.gz
APEL, FLIM. SEMI, Nana-gnus の順にインストールを行なう。バイトコンパイルす る順番があるのでそれぞれのモジュールのバージョンアップの際にはこの順番で再 インストールする必要がある。そうすればインストールの際の無用のトラブルを避 けることができる。
Meadow1.00 にはあらかじめ APEL, FLIM, SEMI, Semi-gnus が同封されているが、 バージョンが古いので以下のように全て消して再インストールしよう。
del c:\Meadow\1.00\lisp\apel\* rmdir c:\Meadow\1.00\lisp\apel del c:\Meadow\site-lisp\mel\* rmdir c:\Meadow\site-lisp\mel del c:\Meadow\site-lisp\semi\* del c:\Meadow\site-lisp\Semi-gnus\*
インストールは、それぞれのモジュールを展開し、通常は make (part 2で解説す る Cygwin に含まれている。)を使って行なうのだが、ここでは make を使わない 方法を解説する。
まず始めにAPELをインストールする。`apel-9.19.tar.gz' を任意の場所で展 開し、展開したディレクトリ apel-9.19 上で以下のコマンドを実行する。
c:/Meadow/1.00/bin/Meadow95.exe -batch -q -no-site-file -l APEL-MK -f compile-apel c:/Meadow/1.00/bin/Meadow95.exe -batch -q -no-site-file -l APEL-MK -f install-apel c:/Meadow c:/Meadow/site-lisp
次にFLIMも同様にflim-1.12.7.tar.gzを展開し、ディレクトリflim-1.12.7上で以 下のコマンドを実行する。
c:/Meadow/1.00/bin/Meadow95.exe -batch -q -no-site-file -l FLIM-MK -f compile-flim c:/Meadow/1.00/bin/Meadow95.exe -batch -q -no-site-file -l FLIM-MK -f install-flim c:/Meadow c:/Meadow/site-lisp
SEMIも同様にsemi-1.13.4.tar.gzを展開し、ディレクトリsemi-1.13.4上で、以下 のコマンドを実行する。
c:/Meadow/1.00/bin/Meadow95.exe -batch -q -no-site-file -l SEMI-MK -f compile-semi c:/Meadow/1.00/bin/Meadow95.exe -batch -q -no-site-file -l SEMI-MK -f install-semi c:/Meadow NONE c:/Meadow/site-lisp
Nana-gnus は nana-gnus-6_12_18.tar.gz を展開し、展開したディレクトリ nana-gnus-6_12_18 の下の lisp ディレクトリで以下のコマンドを実行する。
c:/Meadow/1.00/bin/Meadow95.exe -batch -q -no-site-file -l ./dgnushack.el -f dgnushack-compile
できあがった.elcという拡張子のファイルを c:\Meadow\site-lisp\semi-gnus にコ ピーすればインストールは終了で、それぞれ
c:\Meadow\1.00\site-lisp c:\Meadow\site-lisp\apel c:\Meadow\site-lisp\flim c:\Meadow\site-lisp\semi c:\Meadow\site-lisp\semi-gnus
にインストールされる。
次に Meadow/site-lisp/subdirs.el を編集する。このファイルは site-lisp にあ るサブディレクトリを load-path ( Emacs Lips をロードするための path の設定 値 ) に追加するための設定ファイルである。
(normal-top-level-add-to-load-path
'("apel" "flim" "semi" "semi-gnus"))
以上でインストールはできたので動作は可能であるがドキュメントの整備が不十分 なので、Info のインストールもきちんと行なおう。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
前述の info の変換方法を参照し、flim-1.12.7/mime-ja.texi 、 semi-1.13.4/mime-ui-ja.texi、nana-gnus-6_12_18/texi/gnus-ja.texi および nana-gnus-6_12_18/texi/message-ja.texi を前述の方法( M-x texinfo-format-buffer)でそれぞれ .info という拡張子の付いたファイルに変換 し、/usr/local/info へ置く。
次に /usr/local/info/dir を編集し、以下のエントリを追加すれば C-h i で Info を読むことができるようになる。「もう既に使っているからわかっている」 と思う人も新たな発見が必ずあるので再読することを勧める。
Message User Agent * Gnus-ja: (gnus-ja). The news reader gnus (日本語版). * Message-ja: (message-ja). Mail and news composition mode that goes with Gnus. * FLIM-ja: (mime-ja.info). Internet Message 処理のための基礎 library * SEMI-ja: (mime-ui-ja.info). MIME user interface を提供する package
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
メールを POP サーバから取得するプトグラムである movemail は Meadow に同封 (Meadow/1.00/bin/movemail.exe)されているが、いくつかのバグフィックスと APOP 対応がなされている以下の物に差し替えよう。今月のLibCD Vol.xxに収録。
ftp://ftp.nf-system.co.jp/pub/movemail/movemail-19981216.tar.gz
大場さんによる「メール取得状況ダイアログ表示機能」と、 後藤さんによる「APOP対応」の拡張が なされている。
movemail の主なコマンドラインオプションを示す。
| -p | 進行状況表示、 |
| -u | 未読メールのみ転送 |
| -a | 全てのメールを転送 |
| -k | メールをサーバに残す |
| -A | APOPを使用 |
★「図10 メール取得ダイアルグ表示」
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
それでは Nana-gnus を使うための設定を行なっていこう。初期設定ファイルである .emacs に以下のように設定を行なう。
user-full-name にはフルネームの設定、user-mail-address は E-mail のアドレ ス、MAILHOST には POPサーバ名 を、SMTPSERVER には SMTP サーバ名を以下のよ うに設定する。
(setq user-full-name "your full name") (setq user-mail-address "foo@your domman name") (setenv "MAILHOST" "pop server name") (setenv "SMTPSERVER" "smtp server name")
Gnusでメールを送受信するための設定を行なう。message-send-mail-functionには smtpで送信するための関数を、nnmail-spool-fileはPOPでメールを取得する設定を 行う。fooの部分をPOPアカウント名を設定する。nnmail-movemail-programには movemailを使うことそ指定、nnmail-pop-password-requiredは、POPでメールを取 得する時にパスワード入力を行なう設定である。
(setq message-send-mail-function 'message-send-mail-with-smtp)
(setq nnmail-spool-file "po:foo"
nnmail-movemail-program "movemail"
nnmail-pop-password-required t)
MOVEMAIL には前述の movemail に与える引数を指定する。
(setenv "MOVEMAIL" "-p")
最後に MIME を扱うモジュールである SEMI のセットアップ設定である。
(load "mime-setup")
以上が、.emacsに設定するものであるが、Gnus では Gnus 用の設定は .gnus に書 くことになっていて、以下のような設定を行なう。
まず、ニュースサーバ(nntpサーバ)の設定を行なう。サーバ名、ドメイン名、組織 名をそれぞれ、gnus-nntp-server、gnus-local-domain、gnus-local-organization に設定する。gnus-select-methodにもサーバ名を設定する。
;;; News
(setq gnus-nntp-server "nntp server name"
gnus-local-domain "your doman name"
gnus-local-organization "your Organization name"
)
(setq gnus-select-method '(nntp "nntp server name"))
次にメールの設定を行なう。メールは“nnml”と呼ばれるバックエンドを使う。 Gnusを起動した時に現われるニュースグループとメールグループを一覧表示するバッ ファをグループバッファと呼んでいて、メールグループは“nnml:”というプレフィ クス付きで表示されて区別される。
;;; nnmlの設定 (setq gnus-secondary-select-methods '((nnml "")))
ニュースとメールで From 行を変えたい場合や、付加的なヘッダを増やしたい場合 には以下のように、メールはmessage-default-mail-headersに、ニュースには message-default-news-headersに設定する。ここでFrom行を設定しなかった場合に は前述のuser-full-nameとuser-mail-addressが使われる。
;;; ヘッダの付加情報
;; mail
(setq message-default-mail-headers
"From: あなたの なまえ (your full name) \nX-Uri: http://www.foo.ne.jp/~bar/")
;; news
(setq message-default-news-headers
"From: your full name \nX-Uri: http://www.foo.ne.jp/~bar/")
その他の設定として起動時にトピックモードにするのと、メールや記事に色付けを する設定もしてしまおう。トピックモードは、ニュースやメールグループをトピッ ク(話題)ごとに、好みの種類ごとに分類して表示するモードである。便利な機能な ので是非使おう。
;;; トピックモードにする (add-hook 'gnus-group-mode-hook 'gnus-topic-mode);;; 記事に色づけ (add-hook 'gnus-article-display-hook 'gnus-article-highlight)
メールの自動振り分けは以下のように設定する。 論理和、論理積のリストとして記述する。
;;; mail振り分け (setq nnmail-split-methods 'nnmail-split-fancy nnmail-split-fancy '(| (& ("reply-to" "mule-win32" "Archives/mule-win32") ("reply-to" "mule-win32" "mule-win32") )
;; メーリングリスト ("x-ml-name" "elips" "elips") ("x-ml-name" "GNU-Win32 Mailing List" "gw32-j") ("x-ml-name" "meadow-develop" "meadow-develop") ("reply-to" "meadow-users-jp" "meadow-users-jp") ("x-ml-name" "mew-dist" "mew-dist") ("x-ml-name" "mew-win32" "mew-win32") ("x-ml-name" "tm(ja) / tm ML" "tm-ja")
(any "foo@bar\\.ne\\.jp" "direct")
;; 該当しないもの "misc"))
nnmail-split-fancyには(& ...) の中に列挙したものは複数の該当するフォルダに 格納さて、(| ...)の中は上から最初に該当したフォルダのみに格納するという記 述方式である。
それぞれは、
(ヘッダのフィールド名 該当文字列 フォルダ名)
のように記述する。大文字、小文字は無視される。一番下に misc があるが、これ は何にも該当しなかったものを格納するものであり、グループバッファ上で “nnml:misc”と表示されるグループとなる。ここにはメール振り分けで何のも分 類されなかったメールが格納される。
もしニュースは使わない、メールだけ使うのであればニュースサーバ(nntpサーバ) 関連の設定の必要はなく以下のものだけで良いだろう。
;; nnmlだけ使う。 (setq gnus-select-method '(nnml "")) (setq gnus-secondary-select-methods nil)
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
M-x gnus で起動する。
始めて起動すると Newsgroup はまだ 講読(subscribe)していないので何も表示さ れず図9のようになっている。モードラインにGroupと表示されていて、これをグルー プバッファと呼ぶ。
★「図11 始めて起動したNana-gnusのグループバッファ」
Newsgroup の subscribe は グループバッファで AA を押下し、しばらく待つと (nntp server にどれぐらいの Newsgroup が存在するかにもよるが、3〜5分程度)、 Newsgroup一覧が表示される。subscribeしたい Newsgroup の上にカーソルを移動 して u で subscribe することができる。図10ではfj.editor.emacs, fj.editor.misc, fj.editor.mule, fj.editor.xemacsをsubscribeした例である。
★「図12 Newsgroupのsubscribe」
g でグループバッファに戻るとそこには講読したい Newsgroup だけが表示 されている。これ以降のアクセスでは講読するNewsgroup のみのアクセスになるの で、最初に待たされた時間を毎回待つ必要はなくなります。ただし subscribeする Newsgroupを増やす場合は例外です。
ニュース記事、メールの読みかたはいたって簡単で、グループバッファで読みたい グループの上にカーソルを置き、スペースキーを押下する。すると Summary バッ ファと呼ぶ From と Subject を一覧表示した画面となる。あとはスペースキーを 連打することにより次々にニュース記事、メールを読みことができる。
★「図13 メールを読む」
MIME 形式のメール、ニュースの読み方(添付画像ファイルの再生方法等)や、作り 方については part2 で解説する。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
gnus-agnetはダイアルアップ環境などで、ダイアルアップしてオンライン状態の時 にメール、ニュース記事の取得や送信、オフライン状態でメール、記事を書くとい うことができるものである。
を行うものです。Quassia Gnusからの実装です。
以下に gnus-agnet の状態遷移図を示す。
nndraft:queue に記事(news/mailがたまる)
↑ C-cC-c でnews/mail投稿
M-x gnus -------> Unplugged = ~/News/agent/nntp/nntp-server-name
local spoolの記事をRead
Jj ↓ ↑ Jj
Plugged = nntp server上の記事をRead
↓ C-cC-c でnews/mail投稿
nntp/smtp serverに投稿/送信
↓g ↓Js ↓JS
mailを取得 news記事取り寄せ nndraft:queue掃き出し
未読記事チェック
図 gnus-agnet の状態遷移図
(これじゃぁ何が書いてあるのかわかりませんね。ちゃんと図を書かねば....)
.gnus の後に以下を追加してください。これでグループバッファで Jb を押 下すると Plugged 状態にし、Mailを取得し、nndraft:queue に溜っている mail, news を送信し、Newsの未読記事を取得し、再び Unplugged 状態にするという一連 の動作を行います。
;;; Gnus-agentバッチ処理
(add-hook 'gnus-group-mode-hook
(lambda ()
(define-key gnus-agent-group-mode-map "Jb" 'my-gnus-get-new-message)))
;;
(defun my-gnus-get-new-message ()
(interactive)
(gnus-agent-toggle-plugged t)
(gnus-group-get-new-news);; check news, get mail
(gnus-group-send-drafts);; send mail/news
(gnus-agent-fetch-session);; fetch news
(gnus-agent-toggle-plugged nil)
(message "gnus-agent: main/news send/fetch Finished. "))
;; 一番最初に nntp serverとつなぐ時に Pluggedじゃないとエラーになる
;; 以下は .gnus の最後に書く
(gnus-agentize)
(gnus-agent-toggle-plugged nil)
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
|
URL: http://www.NetLaputa.ne.jp/~kose/ PGP Fingerprint: 59 8E 1E 4D 41 7F DD 80 12 13 47 A3 FB 62 97 44 Copyright (C) 1999, 2000 kose@yk.NetLaputa.ne.jp All Rights Reserved. |
|