UUCP 経由でメールを送信するときは, uux コマンドを用います。 例えば, ノード名*5 が ozenji であるマシンに, sengoku@ozenji.gcd.org あてのメール「mail.txt」を送る 場合は, 図 4 のように実行します。
% uux - ozenji\!rmail sengoku@ozenji.gcd.org < mail.txt |
図 4 uux コマンドでのメール送信 |
rsh コマンドでリモートからコマンドを実行するとき(図 5)と同様です。 つまり, ozenji で「rmail sengoku@ozenji.gcd.org」を実行し, その標準入力にメール本体(mail.txt)を与えます。 もちろん,uux と rsh では通信プロトコルが全く異なる上に, uux はコマンド実行時に相手先マシンを呼び出すのではなく, 通常は一定時間ごとに呼び出す点が異なります。 しかし, コマンドの実行方法というレベルでは両者は似たようなものと考えることができます。
% rsh ozenji "rmail sengoku@ozenji.gcd.org" < mail.txt |
図 5 rsh を使ったと仮定すると 図 4 はこうなる |
あて先マシンで実行する rmail の標準入力に与えるメール本体は, メール・ヘッダーを含み, 先頭に「From 差出人アドレス」行が必要です。 例えば 図 6 のようなものです。
From sengoku@gcd.org Sun May 07 04:41:57 2000 Return-Path: |
図 6 rmail に渡すメールの形式 |
先頭に「From 差出人アドレス」という行が必要です。 |
メールを送るたびに uux コマンドを手で入力していては大変ですから, 通常は sendmail や qmail のような MTA(Mail Transfer Agent) に uux を実行させます。 例えば qmail の場合だと, 「/var/qmail/alias/.qmail-ozenji-default」ファイルなどに, 図 7 のような記述を行う*6 ことになりますし, sendmail の場合だと, 「sendmail.cf」ファイル中に, 図 8 のように書きます*7。 詳しくは MTA のマニュアルを参照してください。
|preline -d /usr/bin/uux - -r -gB -z -a $SENDER ozenji!rmail "($EXT2@$HOST)" |
図 7 qmail で UUCP を利用する場合の設定 |
/var/qmail/alias/.qmail-ozenji-default などにこのような設定を行います。 |
Muucp, P=/usr/bin/uux, F=msDFMuP, S=30, R=30, M=100000, A=uux - -r -gB -z -a $f $h!rmail ($u) |
図 8 sendmail で UUCP を利用する場合の設定 |
/etc/sendmail.cf ファイル中にこのような設定を記述します。 |
一方,UUCP 経由でメールを受信する側は, 送信側が uux コマンドへの引数で指示した通り, rmail コマンドを実行するだけです。 つまり mail.txt を受信したメール本体とすれば, 図 9 のように rmail コマンドを実行したとき, 正しくメールがあて先に配送されるよう設定しておく必要があります。
% rmail sengoku@ozenji.gcd.org < mail.txt |
図 9 UUCP でメールを受信するには |
あらかじめ図のように rmail でメールが受信で きるようになっている必要があります。 |
なお, 通常 rmail は /usr/bin に置きます。 インストールされていない場合は, sendmail に含まれている rmail をインストールしてください。 rmail の機能は非常に単純で, 単に内部で sendmail(qmail を使っている場合は sendmail ラッパー) を呼び出しているだけです。
UUCP でネット・ニュースの記事を送信するときも, uux コマンドを用います。 例えば, ozenji に, 記事のバッチ・ファイル news.txt を送る場合は, 図 10 のように実行します。 実際には, sendbatch プログラムなどによって バッチ・ファイル生成と uux コマンドの実行が行われます (INN 等のニュース・システムの場合)。
% uux - ozenji\!rnews < news.txt |
図 10 UUCP でニュースを送信 |
バッチ・ファイルとは, 「#!rnews 記事のバイト数」という行で区切られた 複数の記事をまとめたファイルです。 例えば 図 11 のようなものです。 これを gzip などの圧縮プログラムで圧縮して, 先頭に「#!cunbatch」という行を付けたファイルを送ることもできます。
#! rnews 203 Path: gcd.org!sengoku From: Hiroaki Sengoku |
図 11 ニュース送信用のバッチ・ファイルの例 |
一方, UUCP 経由でネット・ニュース記事を受信する側は, 送信側が uux コマンドへの引数で指示した通り, rnews コマンドを実行するだけです。 つまり news.txt を受信したバッチ・ファイルとすれば, 図 12 のように rnews コマンドを実行したとき, 正しく記事を受け取ることができるよう, ニュース・システムを設定しておく必要があります。
% rnews < news.txt |
図 12 UUCP でニュースを受信するには |
あらかじめ、図のように rnews コマンドを実行して記事を |
なお, 通常 rnews は /usr/bin に置きます。 INN などのニュース・システムをインストールすれば rnews もインストールされるはずです。
本稿は日経Linux 2000 年 7 月号に掲載された、 実践で学ぶ、一歩進んだサーバ構築・運用術, 第 4 回「UUCP の活用」を日経BP 社の許可を得て転載したものです。
Copyright(C)2000 by 仙石浩明 <sengoku@gcd.org>
無断転載を禁じます