NIFTY Serve自動アクセスkermitマクロパッケージ kermits (暫定版) 川俣吉広 (GHA02475@niftyserve.or.jp) 1994年2月11日 このパッケージは‥ このパッケージはkermitを使用してNIFTY Serveに自動アクセスするもの です。現在実現している機能は以下の通りです: ・未読メイルの読み出し(と削除) ・フォーラム未読記事の読み出し ・ホームパーティ未読記事の読み出し ・メイルの送信 このパッケージは Yggdrasil LGX '93 Fall + JE (UNIX USER CD-ROM) と いう環境で作成、運用されています。それ以外の環境での動作は確認されて いません。kermitのマクロはバージョンによりコマンドの仕様が少しずつ異 なっているので、そのような場合はマクロの修正が必要でしょう。またこの パッケージ自体、開発途上であり改善すべき点が多くあります。あくまでも サンプルと思って下さい。 必要なもの ・日本語の表示/編集等の可能な環境 ・kermit (C-Kermit 5A(189), 30 June 93, POSIX) ・gawk, perl (日本語非対応でもOKです) ・漢字コード変換フィルタ nkf インストールする 前項の「必要なもの」で挙げられているソフトがインストールされている ことを確認します。 まずこのパッケージをホームディレクトリ上で展開します。 ^^^^^^^^^^^^^^^^^^^^ gzip -d < kermits.tar.z | tar xvf - パッケージを展開すると以下のようなファイルが作成されます: ~/kermits/ README このファイル scripts/ autoseq.sh オートパイロットの起動shスクリプト commondefs 汎用kermitマクロライブラリ crontab crontabエントリのサンプル dot.kermrc .kermrcのサンプル fvwmrc.add .fvwmrc(の一部)のサンプル mknifmail メイル送信用shスクリプト nif.alogin NIFTYオートパイロット用kermitスクリプト nif.apilot NIFTYオートログイン用kermitスクリプト nif.defs NIFTY用マクロライブラリ nifsave 未読ログ処理用shスクリプト nifsplit.pl 未読ログ処理用perlスクリプト(nifsaveが使用) spool/ nif/ idlist mknifmailで使用するIDと別名の対応表 read/ 記事の保存用ディレクトリ write/ 送信メイルのスプールディレクトリ 各ファイルの用途、設定方法は次の通りです: autoseq.sh オートパイロットを行う際にcronから起動されるシェルスクリプトです。 手動で起動することもできます。 crontab crontabコマンドに与えるデータのサンプルです。詳しくはcronのマニュ アルページを参照して下さい。 fvwmrc.add fvwmウィンドウマネージャのメニューからこのパッケージを呼び出すた めの設定のサンプルです。オートパイロット自体はこのファイルの設定 をしなくても使えます。 使用する場合はこのファイルを~/.fvwmrcに付け加えます。 mknifmail メイル送信用shスクリプトです。このファイルはコマンドのサーチパス に加わるようにコピーするかリンクを張って下さい。また、このスクリ プトはエディタを起動するので、環境変数EDITORも設定しておいて下さ い。 nifsave kermitが収集したログファイルをセクション別に別ディレクトリに保存 する、いわゆる「ログカッタ」です。mknifmailと同様、コマンドのサー チパスに加えて下さい。 nifsplit.pl 実際にログのカットを行うperlスクリプトです。nifsaveから呼び出さ れます。 dot.kermrc .kermrcのサンプルです。以下の部分を実際に使用する設定に書き換え、 ~/.kermrcにコピーして下さい。 # # configuration parameters # define comdev /dev/ttyS1 # name of serial device define comspd 9600 # DTE speed commondefs NIFTY以外のネットでも汎用に使うことのできるkermitマクロが定義さ れています。使用するモデムに合わせて以下の部分を書き換えて下さい。 # # configuration parameters for MODEM # define atcominit ATE1Q0 # initialize command define atcomhup ATH0 # hang up command define atcomdial ATD # dialing command kermitマクロは回線接続時にモデムが発する「CONNECT」という文字列 をみて接続判定を行っていますので、そのようにモデムを設定して下さ い。初期化コマンドが必要ない場合はatcominitは「AT」とだけして下 さい。 nif.defs NIFTY用マクロライブラリ NIFTY用のマクロ定義集です。nif.apilotおよびnif.aloginから使用さ れます。利用環境に合わせて以下の部分を書き換えて下さい。 # # configuration parameters # define pnr1 0252444125 # phone number of ROAD1 (undefine ... define pnr2 0252447554 # phone number of ROAD2 (undefine ... define rdmax 10 # maximum count of redial define nifid GHA02475 # user ID define nifpw ItsShowTime # password define delmail NO # YES if delete after reading mail 接続するAPがROAD1かROAD2のどちらかだけという場合は使用しない方を 削除するかコメントアウトして下さい。両方指定した場合は、まず ROAD1で接続を試み、BUSYならROAD2を試すという動作になります。 nif.alogin NIFTYのオートログインを実際に行うkermitスクリプトです。 nif.apilot NIFTYのオートパイロットを実際に行うkermitスクリプトです。このファ イルで巡回を行うフォーラム、ホームパーティが記述されていますので、 実際の使用に合うように編集して下さい。 spool/nif/idlist mknifmailで使用するIDと別名(alias)の対応表です。内容は次のように 書きます。 &default GHA02475 &kawamata &kaw &linuxuser ZZZ12345 &iwamoto &linuxuser : : : ... 以下同じ 最初にUSER ID、以降スペースで区切って別名を書きます。別名の頭に は & をつけます。最初の行の「&default」は変更しないで下さい。メ イルを送信する際、idlistに該当する別名が複数ある場合、それが全て 宛先になりますので、別名を使用して同報メイルのようなこともできま す(例の中の&linuxuser の部分)。 使ってみる 設定の確認 前項で説明したインストールが終了したら、まず手動でアクセスしてみ ます。まず、 kermit とオプションなしでkermitを起動し、 C-Kermit 5A(189), 30 June 93, POSIX Type ? or HELP for help C-Kermit>connect ^^^^^^^ とconnectコマンドを実行し、オンラインモードに移行します。後は手動 でモデムのコマンドを投入しNIFTYにアクセスしてみます。正常にアクセ スが行われれば一番基本的な設定はOKです。 この際、接続時にモデムから「CONNECT」という文字列が返ってくるこ とを確認しておきます。 漢字の部分がうまく表示されない場合は日本語環境の漢字コードをチェッ クしてみて下さい。このパッケージではシフトジスコードの使用を前提に しています。 なお、この時のログは~/kermits/spool/lastlog.defaultというファイ ルに記録されますので、チェック結果をあとで見直す際に利用できます。 NIFTYにオートログインする 手動でのアクセスに成功したら、次にオートログインをやってみます。 先程と同様にkermitを起動し、今度は C-Kermit>login nif ^^^^^^^^^ とコマンドを投入します。そうするとkermitのマクロnifloginが実行され、 モデムのダイアリングからパスワードの入力までの手順が自動で行われま す。ログイン後はconnectコマンドが実行され、オンラインモードになり ますので、これ以後は手動でNIFTYを使用します。 この場合のログは~/kermits/spool/nif/lastlog.manualというファイル に保存されます。 NIFTYにオートパイロットでアクセスする 最後にオートパイロットのテストをしてみます。~/kermits/scriptsディ レクトリに移動し、 ./autoseq.sh & と起動コマンドを実行するとバックグラウンドでNIFTYのアクセスが開始 されます。この間は画面への表示は行われません。アクセスの様子を見た い時はログが~/kermits/spool/nif/lastlogというファイルに記録される ので、tailコマンドを使って tail -f ~/kermits/spool/nif/lastlog とすればアクセスの様子をほぼリアルタイムで監視することができます。 アクセスが正常に終了したら、付属のcrontabファイルを参考に、アク セスの時間を設定します。 ウィンドウマネージャから起動する X上でfvwmを使用している場合はパッケージに付属のfvwm.addを ~/.fvwmrcに組み込むと以上述べた操作をメニューで呼び出すことができ ます。メニューの選択項目と機能の対応は以下のようになります。 .====================. |← Kermit Sessions | |====================| | Manual connect | ← 手動コネクト |====================| | auto login | |--------------------| | NIFTY Serve | ← NIFTYオートログイン |====================| | background | |--------------------| | NIFTY Serve | ← NIFTYオートパイロット |====================| | background monitor | |--------------------| | NIFTY Serve | ← NIFTYオートパイロットの監視 .====================. このメニュー設定の内容は非常に単純なので、twmなどの別のウィンドウ マネージャにも容易に組み込むことができるでしょう。 記事を読む オートパイロットにより得られたデータは次の2つのファイルに格納され ます。 ~/kermits/spool/nif/lastlog ~/kermits/spool/nif/unread lastlogには文字通り、最も最近アクセスした時のログが格納されます。 このファイルにはアクセスの様子が逐一記録されますので、アクセス内容の チェックに使用することができます。 一方unreadの方はアクセスするたびに内容が追加されていきます。こちら には未読記事が &kermbegin&forum&funix& 〜記事本体〜 &kermend&forum&funix& のように特別な文字列で挟み込まれています。これはkermitマクロが書き込 んだものでログカッタが記事の最初と終りを判別するのに使用します。 現在このパッケージには記事を読むための特別な仕掛けはありません。作 者はlessを使ってunreadファイルを直接読んでいます:-)。 未読を全て読み終ったら、コマンドnifsaveを実行します。これによりロ グカッタが起動され、unread中の全ての記事が(例えば) ~/kermits/spool/nif/read/forum.funix.19というような名前のファイルに 保存します。またunreadはunread.bakにリネームされます。 メイルを書く メイルを書くにはmknifmailというコマンドを使います。例えば mknifmail kawamata とすると以下のようにエディタが起動されます。 .------------------------------------------------. |TO: GHA02475 | |SUB: _ | | | | | | | .-----NEmacs: mail.3 (EJE-:Text)--All-----------. 宛先は~/kermits/spool/nif/idlistに記述されているものを使用します。 宛先を指定しないとTO:フィールドはブランクになりますので手で入力しま す。SUB:フィールドに題名を、それ移行の行に本文を入力してエディタを終 了するとメイルはスプールされ、次回のオートパイロットアクセス時に送信 されます。エディタが使用する漢字コードはどのようなものでもOKです。漢 字コードはスプール時にnkfにより変換されます。 再配布についてなど ・このパッケージの原作者は 川俣吉広 (GHA02475@niftyserve.or.jp) です。 ・このパッケージはフリーソフトウェアです。改変、再配布等は自由に行え ます。 ・このパッケージは無保証です。これを使用して生じたいかなる結果につい ても原作者は責任を負いません。 ・改変したものを配布する場合は原作者が誰であるかを明記して下さい。 ・その他細かな事項は配布者の良識による判断に委ねます。 このパッケージは開発中のものの暫定版です。機能的に不十分な点や不都合 な点が数多くあると思います。そのような点についてご意見がございましたら 原作者までメイルを頂きたいと思います。今後の改良の参考に致します。 このパッケージを開発するにあたって KHB10110 佐久間 良 さん NBB02702 ぺーちゃん さん ほか数名のかたからアドバイスを頂きました。ありがとうございました。