DOSでPPP


職場に OCN が開通しました。職場にいる限りなんでもできます。 困るのは出張や長期休暇の間のメール処理です。 ニフティからメールサーバーに telnet でログインして読み書きしてもいいんですが、 余計な課金をとられてしまいますし第一美しくない。 直接職場に PPP接続して、それなりのメーラーを使いたいものです。 ということで、モバイルマシンで“まともに”メール処理できる環境が欲しい、 と思ったことから始まったのがこれです。

Windows95 だと簡単です。電信八号や AL-Mail や Becky! 等の著明なメーラーが使えますから。 事実私の 95ノートにも電信八号は入っています。 けど、それじゃあ面白くない。
やっぱり DOS がいい。 なんたって HP200LX やらモバイルギアやら InterTop やらでも使えますから。 ちなみに私の場合は IBM PalmTopPC110 です。


まずはメール

なにはさておきメールです。 D-MAIL というフリーのメーラーソフトを使います。 ニフティにアクセスできる人は、 FHPPC MES 20 の過去ログに設定例や活用例がたくさんあるので、ざっと目を通しておいた方がいいです。

D-MAIL はいろいろな接続形態に対応しているのですが、目指すのは PPP接続です。 この場合、他に PPP接続用のドライバが必要になります。 というわけで、 D-MAIL に取り掛かる前に PPP接続できる環境を作ります。


その前にPPP

以前は、 EtherPPP というフリー(?)のドライバがよく使われていたみたいで、 D-MAIL 同梱の接続例も EtherPPP が多いのですが、最近は dosppp が流行のようです。 というわけで私も dosppp を使うことにしました。入手先は次のところです。

設定ファイルや起動用バッチファイルは自分で作らなければいけません。 接続する先(プロバイダ)の接続手順等の情報を知っていなければならないので、 ちょっとてこずることがあるようです。
dosppp のドキュメントは英語ですが、私はほとんど読まずに、 FHPPC の接続例を参考に設定しました。 各々の設定の意味などをあまり深く理解していないのですが、使えているのでよしとします。
私は、自宅やその近隣から職場に接続する時用と、 帰省や遠方に出張した時にニフティ (HyperROAD) 経由で接続する時用の設定を選んで使えるようにしています。

まずは、ダイアルして PPP接続するバッチファイルです。こんな風に使います。

[DIALER.BAT]
----cut here----8<----cut here----8<----cut here----8<----cut here----
@echo off
BU PUSHD %DOSPPP%
if _%1==_ goto DIALER
if %1==l goto LOGINORANGE
if %1==L goto LOGINORANGE
if %1==p goto PAPORANGE
if %1==P goto PAPORANGE
if %1==n goto PPPNIFTY
if %1==N goto PPPNIFTY
if %1==h goto HANGUP
if %1==H goto HANGUP
goto SYNTERR

:LOGINORANGE
set PPPTYPE=OrangePPP(Login)
goto PPPCHANGE

:PAPORANGE
set PPPTYPE=OrangePPP(PAP)
goto PPPCHANGE

:PPPNIFTY
set PPPTYPE=NiftyPPP
goto PPPCHANGE

:HANGUP
termin 0x62
echo ^G
echo Connection Closed
goto END

:SYNTERR
echo Syntax error, call as DIALER [option]
echo option : [none] = dial at last setting
echo          L or l = Orange PPP(login)
echo          P or p = Orange PPP(PAP)
echo          N or n = Nifty HyperRoad
echo          H or h = HangUp
goto END

:PPPCHANGE
echo %PPPTYPE%
jgawk -f d:\usr\awk\dosppp.awk dosppp.cfg %PPPTYPE%
set PPPTYPE=
goto DIALER

:DIALER
if exist ip-up.bat del ip-up.bat
rem epppdd debug kdebug 1 >nul
epppd
if errorlevel 1 goto CONNERR
if not exist ip-up.bat goto CONNERR
call ip-up.bat
if exist wattcp.cfg del wattcp.cfg
copy myisp.cfg wattcp.cfg
echo my_ip=%MYIP% >>wattcp.cfg
set WATTCP.CFG=%DOSPPP%
echo ^G
echo Connection successful
goto END

:CONNERR
echo Connection failed...

:END
BU POPD
----cut here----8<----cut here----8<----cut here----8<----cut here----

バッチファイルの最初と最後で呼んでいる BU は、カレントディレクトリの待避と復帰です。

DIALER.BAT から参照している3つのファイル (PPPDRC.CFG CHATSCR MYISP.CFG) は、 DOSPPP.CFG というファイルにまとめて書いておいて、 必要に応じて awk スクリプトで切り出しています。

接続先が1ヶ所に決まっている人は、こんなややこしいことをしなくても、 PPPDRC.CFG CHATSCR MYISP.CFG に直接書いてもいいです。

DOSPPP.CFG の書式は次の通りです。

PAP認証では PPPDRC.CFG にログイン名・パスワードを書きます。 ログイン認証では CHATSCR にログイン名・パスワードを書きます。

[DOSPPP.CFG]
----cut here----8<----cut here----8<----cut here----8<----cut here----
##OrangePPP(Login)##
<<PPPDRC.CFG>>
COM1
pktvec 0x62
38400
modem
crtscts
asyncmap 0
connect "chat -v -r pppdconn.lst -f chatscr"
<<CHATSCR>>
ABORT ERROR ABORT BUSY ABORT 'NO DIALTONE'
ABORT 'NO CARRIER' ABORT RING
REPORT CONNECT
TIMEOUT 20
'' ATZ
OK ATQ0V1&C1&D2
OK ATDT082-###-####                    ← 電話番号
TIMEOUT 60
CONNECT \c
ogin: XXXXXXXX                         ← ログイン名
word: XXXXXXXX                         ← パスワード
<<MYISP.CFG>>
print="Palm Top PC110(OrangePPP)"
nameserver=192.168.0.10                ← プライマリDNSのIPアドレス
nameserver=192.168.0.11                ← セカンダリDNSのIPアドレス
netmask=0.0.0.0
gateway=192.168.0.1                    ← ゲートウェイのIPアドレス
domainlist="orange.co.jp"
SOCKDELAY=120

##OrangePPP(PAP)##
<<PPPDRC.CFG>>
COM1
pktvec 0x62
38400
modem
crtscts
asyncmap 0
connect "chat -v -r pppdconn.lst -f chatscr"
user XXXXXXXX                          ← ログイン名
passwd XXXXXXXX                        ← パスワード
<<CHATSCR>>
ABORT ERROR ABORT BUSY ABORT 'NO DIALTONE'
ABORT 'NO CARRIER' ABORT RING
REPORT CONNECT
TIMEOUT 20
'' ATZ
OK ATQ0V1&C1&D2
OK ATDT082-###-####
TIMEOUT 60
CONNECT
<<MYISP.CFG>>
print="Palm Top PC110(OrangePPP)"
nameserver=192.168.0.10                ← プライマリDNSのIPアドレス
nameserver=192.168.0.11                ← セカンダリDNSのIPアドレス
netmask=0.0.0.0
gateway=192.168.0.1                    ← ゲートウェイのIPアドレス
domainlist="orange.co.jp"
SOCKDELAY=120

##NiftyPPP##
<<PPPDRC.CFG>>
COM1
pktvec 0x62
38400
modem
crtscts
asyncmap 0
connect "chat -v -r pppdconn.lst -f chatscr"
user NIM-KHB04045                      ← ログイン名("NIM-"+ニフティのID)
passwd XXXXXXXX                        ← パスワード
<<CHATSCR>>
ABORT ERROR ABORT BUSY ABORT 'NO DIALTONE'
ABORT 'NO CARRIER' ABORT RING
REPORT CONNECT
TIMEOUT 20
'' ATZ
OK ATQ0V1&C1&D2
OK ATDT0828300763
TIMEOUT 60
CONNECT
<<MYISP.CFG>>
print="Palm Top PC110(NiftyPPP)"
nameserver=202.248.2.226               ← DNSのIPアドレス
netmask=0.0.0.0
gateway=0.0.0.0
domainlist="niftyserve.or.jp"
SOCKDELAY=120
----cut here----8<----cut here----8<----cut here----8<----cut here----

DOSPPP.AWK では、 DOSPPP.CFG から、指定された設定名のファイルを切り出します。 特に設定しなきゃいけない箇所はありません。

[DOSPPP.AWK]
----cut here----8<----cut here----8<----cut here----8<----cut here----
BEGIN {
    TRUE = (1==1);
    FALSE = !TRUE;
    if( ARGC < 3 ) {
        print "Usage : jgawk -f dosppp.awk CFG-FILE CFG-NAME";
        exit;
    }
    type = ARGV[ARGC-1];
    bPrint = FALSE;
    ARGC--;
}
/^##.*##$/ {
    if( type == substr( $0, 3, length($0)-4 ) ) {
        bPrint = TRUE;
    } else {
        bPrint = FALSE;
    }
    continue;
}
/^<<.*>>$/ {
    if( bPrint ) {
        fname = substr( $0, 3, length($0)-4 );
        print fname;
        printf( "" ) > fname;
    }
    continue;
}
{
    if( bPrint && fname != "" && $0 != "" ) {
        print $0 >> fname;
    }
}
----cut here----8<----cut here----8<----cut here----8<----cut here----

他の用途にも使えるかもしれません。どうぞご自由にお使いください。


D-MAIL

dosppp に比べると D-MAIL の設定はずっと簡単で、ドキュメントを参照しながら CONFIG.RC を設定します。 D-MAIL はオフラインにも対応しているので、通信費の節約のために次の手順にします。

  1. オフラインで D-MAIL を起動し、送信するメールを準備する。
  2. DIALER (または DIALER P or L or N) で接続する。
  3. D-MAIL からメール送信し、新着メールをチェックする。
  4. DIALER H で切断する。
  5. D-MAIL でメールを読む。

telnet

私はあんまり使うことはないのですが、たまに telnet も必要になります。 “たまに使う”程度であれば、 LNET あたりが適当では ないでしょうか。
でも使った感想は、ドキュメントにも書いてありますがなんとなく重いです。 ニフティ (r2.nifty.ne.jp) には接続できたことがありません。

使い方は D-MAIL と同じで、接続して LNET.EXE を起動するだけです。

  1. DIALER (または DIALER P or L or N) で接続する。
  2. LNET.EXE を起動してリモートマシンに接続。
  3. DIALER H で切断する。

WWWブラウズ

IBM から販売されている WebBoy はかなり本格的なブラウザらしいですが、 そこまでの機能はいりません。テキストだけで充分。
ということで Bobcat です。要するに DOS版 の LYNX です。 これは、本体と日本語版の両方必要です。

設定がいろいろややこしそうなのですが、とりあえず何もしなくてもローカルファイルのブラウズはできました。 とにかく動いているのを確認してから、色の設定とかスタートページの変更をすればいいでしょう。 Bobcat にはたくさんファイルが含まれていますが、 ディスクスペースの節約のため使いそうもないものは削除しました。

使い方は D-MAIL や LNET と同じで、接続して LYNX.EXE を起動するだけです。

  1. DIALER (または DIALER P or L or N) で接続する。
  2. LYNX.EXE を起動してブラウジング。
  3. DIALER H で切断する。

Bobcat は、 LYNX.EXE のあるディレクトリの WATTCP.CFG を参照するそうなので、 LYNX.EXE は dosppp 関連ファイルと同じディレクトリに入れています。 一方 D-MAIL は環境変数で指定したディレクトリの WATTCP.CFG を参照するそうです。 LNET は作者が D-MAIL と同じなので、たぶん同じでしょう。


ftp

Bobcat のアーカイブ内に FTP.EXE があります。 よくあることですが、日本語モードではなにも表示されませんでしたので、仕方なく一時的に英語モードに変更して使っています。

これで Web ページのメンテナンスも可能になります。 実際このページも、これまでにあげたツール類を使って更新しています。


戻る