Windows95で受信トレーを整備しましたか。一台のPCにポストオフイスを作りLan内でメールのやり取りをしたことがあります。その時、Lan内メール
とインターネットメールは仕組が違うのは、理解しました。
両方のメーラーをセットする必要がありましたから。outlookとoutlookexpress
。なんだかスッキリしませんでしたね。結局outlookexpressしか使わなくなりました。 メールはインターネットメール。もうそんな時代ですね。ところうが、 CGIを勉強し出すと、毎日使うメールの仕組みが分っていないのに気付く。少し頭の整理をしてみました。 |
インターネットの中には、大きなポストオフィスはありません。
サーバー同士が転送しあっているだけです。投函されたメールは速やか
に受取り人のサーバーに送られます。サーバー同士はSMTP(Simple Mail Transfer Protocol)というプロトコル
で会話をしています。メールを何処へ転送するのが一番いいかは、表があるそうです。 電話と違って、メールは受取り人が受信手続きをするまで配達されません。 ですから、サーバーに一時蓄えられるものとしてプロトコルが作られています。 もっと基本的なことをいえば、投函、転送のプロトコルと、受取るプロトコル は全然別物ということです。受取るプロトコルはPOP(Post Office Protocol)といいます。メーラー の設定で、popとsmptをセットするのは、そのためだったのです。 さて、CGIの話で、メールを送ることを考えてみます。ページ のフォーム入力は、CGIで手元に集まります。返事をページに書き送ること もCGIでできます。でも、内容は掲示板と同じで、誰もが見れてしまいます。それではいけません。例えば、パスワードの発行。 個人宛の情報はメールでお知らせする必要があります。ということで、ページから直接メール出力することを考えてみます。 しかも、サーバー内部で生成した データーを自動的に配信するようにします。結局、CGIで直接SMTPにデーター を流す方法をマスターしなければなりません。 |
Unixのサーバー同士がメール交換するには、sendmailを
使います。これはサーバーソフトです。インターネットのメールサーバーはSMTPサーバーとPOPサーバーがありますが、sendmailを使うSMTPサーバー
にアクセスする方法が必要です。 プロバイダーでsendmailは利用できたのですが、 スパムメールが多くなり、最近では、ほとんどが利用許可をしていません。 会員にはUnixのOSのコンソールを開放してsendmailを利用させる。 そんなtelnetサービスもありました。これも、もうほとんで開放されていません。 telnetでメールを送る方法はこんな風でした。
一行目の25はSMTPで使われるポート番号の25番です。niftyのパソコン 通信のLOGIN手続きに似ていますね。結局パソコン 通信は大型コンピユータのリモート端末を操作していたということでした。 |
sendmailが使えません。メール送信のCGIは諦めますか。
それとも、他人の迷惑を恐れながらも挑戦しますか。プロが作ったものを、お金を出して使いますか。 フリーソフトのCGIスクリプトがあります。信頼できるものを利用するのが賢明でしょう。でも、フリーソフトは自己責任で 利用するのが前提です。「知らなかった」では済まされないことが起きる かもしれません。プログラムは、実際動かして見ないとわからない所が あります。エラーを見ながら改良していきます。公共のインターネットで 「おばかさん」をする勇気はありません。 そこで、社内LANの中にWebサーバーを整備することにしました。 外部には接続しない閉じたネットでTCP/IPで動くサーバーを立てます。すでにProxyサーバーは動かしています。調べてみると 、この簡易サーバーはWebサーバーにもなります。CGI,SSIもOK。 将来、Linuxでapache。それは決めています。でも、今はMSwindows98 の環境。sendmailはUnixのツール。windows98でこれに代わるものが必要です。 検索してみると。Blatj というツールがあるそうです。 |
blatjはwindowsNTのツールです。windows98でも動くという 情報です。試してみました。 |
問題無くtextファイルが送信されました。もちろん、自分で自分宛におくったのですが。REGISTRYを確認してみましたが、Public Domain¥Blatというキー
でinstallの情報が書き込まれていました。この時の情報が以後smptアドレスとして、規定値に使われていくようです。 そこで、これを利用してメール送信CGIを準備しました。 KENTWEBさんのpostmail.cgiを利用しました。 送信処理スクリプトは下記のようです。 open(MAIL,"| blatj $tempfile -t $mailto -s \"$subject\" -q"); close(MAIL); blatjのコマンドリファランスの一部は下記ですが、 これに従い、標準入力(キーボード)から打込んだようにスクリプト されています。ファイルコマンドでパイプ「 | 」を利用しています。 この場合、左に | がありますから、キーボードに出力ということです。 手動でタイプインするのとまったく同じ結果です。 「ナルホド」といったところです。 Blat <filename> -t <recipient> [optional switches (see below)] -t <recipient> : recipient list (comma separated) -s <subj> : subject line -q : supresses *all* output. |
簡易Webサーバーとsendmaild代換策の目処がつきました。
すこし気合を入れてCGI,SSIの勉強をしてみます。Perlに慣れる
ということが中心課題なのでしょうが、環境としては良好です。 FORTRANでプログラムを覚え、Basicで仕事に活用した経験 はあります。表計算のマクロも少々。javaScriptも少々。プログラム 言語をマスターするコツは知っていますが、Perlに挑戦 など考えてもいませんでした。インターネットという大きなブームの 中、避けては通れないのでしょう。 |