実践で学ぶ、一歩進んだサーバ構築・運用術

第 4 回 UUCP の活用


UUCP でメールを送受信する

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: 
Received: (qmail 8369 invoked from network); 7 May 2000 13:41:57 +0900
Received: from localhost (sengoku@127.0.0.1)
by localhost with SMTP; 7 May 2000 13:41:57 +0900
To: sengoku@ozenji.gcd.org
Subject: test
Date: Sun, 07 May 2000 13:41:57 +0900 (JST)
From: Hiroaki Sengoku 

仙石です。これはUUCP でメールを送るテストです。


#6089.                                                          仙石 浩明
http://www.gcd.org/sengoku/             Hiroaki Sengoku <sengoku@gcd.org>

図 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 でニュースを送受信する

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 
Newsgroups: gcd.test
Subject: test 1
Date: 12 Apr 2000 21:40:20 +0900
Message-ID: <8d1qrk$ufv$1@asao.gcd.org>

This is the 1st test article.
#! rnews 204
Path: gcd.org!sengoku
From: Hiroaki Sengoku 
Newsgroups: gcd.test
Subject: test 2
Date: 13 Apr 2000 00:13:35 +0900
Message-ID: <8d23qv$3co$1@asao.gcd.org>

This is the 2nd test article.
#! rnews 272
Path: gcd.org!sengoku
From: Hiroaki Sengoku 
Newsgroups: gcd.test
Subject: test 2
Date: 13 Apr 2000 16:52:50 +0900
Message-ID: <8d3uci$1a1$1@asao.gcd.org>
References: <8d1qrk$ufv$1@asao.gcd.org> <8d23qv$3co$1@asao.gcd.org>

This is the last test article.

図 11 ニュース送信用のバッチ・ファイルの例

一方, UUCP 経由でネット・ニュース記事を受信する側は, 送信側が uux コマンドへの引数で指示した通り, rnews コマンドを実行するだけです。 つまり news.txt を受信したバッチ・ファイルとすれば, 図 12 のように rnews コマンドを実行したとき, 正しく記事を受け取ることができるよう, ニュース・システムを設定しておく必要があります。


% rnews < news.txt
図 12 UUCP でニュースを受信するには

あらかじめ、図のように rnews コマンドを実行して記事を
受け取ることができるよう,ニュース・システムを設定して
おく必要があります。

なお, 通常 rnews は /usr/bin に置きます。 INN などのニュース・システムをインストールすれば rnews もインストールされるはずです。

*5
UUCP におけるマシン識別子。 TCP/IP における hostname(ホスト名)と似たようなものです。 実際, ノード名とホスト名を同一にしてもよく, 例えば ozenji はノード名であると同時にホスト名 (FQDN は ozenji.gcd.org)でもあります。
*6
このままだと, 差出人アドレス($SENDER)に空白文字が含まれる場合, うまくいきません。 uux は空白文字を含むアドレスを正しく扱えないので, 空白文字が含まれる場合は, 「-a $SENDER 」オプションを指定しない方がよいでしょう。
*6,*7
あて先アドレスを「( )」でくくるのは, アドレスに「!」が含まれている場合に対応するためです。 最近は「!」形式のアドレスは, まず使われませんから「( )」は無くてもいいのかも知れません。

(Taylor UUCP の設定例)


本稿は日経Linux 2000 年 7 月号に掲載された、 実践で学ぶ、一歩進んだサーバ構築・運用術, 第 4 回「UUCP の活用」を日経BP 社の許可を得て転載したものです。

Copyright(C)2000 by 仙石浩明 <sengoku@gcd.org>
無断転載を禁じます

| home | up |

sengoku@gcd.org