FreeBSD 2.X についての FAQ (よくある質問とその答え) : システム管理 : UUCP で mail を配送するには sendmail をどう使えばよいのですか?
Previous: FreeBSD は System V の IPC プリミティブをサポートしますか?
Next: ダイアルアップでインターネットに接続する環境でメールをセットアップするにはどうやるの?

8.18. UUCP で mail を配送するには sendmail をどう使えばよいのですか?

FreeBSD に付属している sendmail は, インターネットに直接 つながっているサイトにあわせて設定してあります. UUCP 経由で mail を交換したい場合には sendmail の設定ファイルを改めてインストール しなければなりません.

/etc/sendmail.cfを自分の手で改造するのは純粋主義者の やるような事です. sendmailの version 8 は m4 のような プリプロセッサを通して設定ファイルを生成する新しいアプローチを 取っており, より抽象化されたレベルの設定ファイルを編集します. 以下のディレクトリの中にある設定ファイルを使用してください.

        /usr/src/usr.sbin/sendmail/cf
      

もしすべてのソースをインストールしていない場合には sendmail の設定ツールは, 別の tar ファイルにまとめてあります. CD-ROM が mount されている場合には, 次のようにしてください.

        cd /usr/src
        tar -xvzf /cdrom/dists/src/ssmailcf.aa
      

これはたった数 100Kbyte ですから心配ないでしょう. cf ディレクトリにある README に, m4 での設定の基本的な説明があります.

UUCP での配送のためには, mailertable を使用すれば よいでしょう. これによって, sendmail が配送方式を決定するデータベースを 作成することができます.

まずはじめに, .mc ファイルを作成しなければなりません. /usr/src/usr.sbin/sendmail/cf/cf というディレクトリが, これらのファイルを作成する場所です. 既にいくつか例があると思います. これから作成するファイルの名前を foo.mc とすると, sendmail.cf を求めているような形式に変換するには, 次のようにしてください.

        cd /usr/src/usr.sbin/sendmail/cf/cf
        make foo.cf
        cp foo.cf /etc/sendmail.cf
      

標準的な .mc ファイルは次のようになります.

        include(`../m4/cf.m4')
        VERSIONID(`Your version number')
        OSTYPE(bsd4.4)

        FEATURE(nodns)
        FEATURE(nocanonify)
        FEATURE(mailertable)

        define(`UUCP_RELAY', your.uucp.relay)
        define(`UUCP_MAX_SIZE', 200000)

        MAILER(local)
        MAILER(smtp)
        MAILER(uucp)

        Cw    your.alias.host.name
        Cw    youruucpnodename.UUCP
      

nodnsnocanonify という指定をすることで, mail の配送に DNS を使用しなくなります. UUCP_RELAY という 行に関しては, ある理由から必要ですがそれは聞かないでください. .UUCPで終わる仮想ドメインを処理することのできるインターネット上での ホスト名をここに書いてください. 通常は, ISP の mail リレーホストを 書くことになると思います.

これが終了したら, 次に /etc/mailertable というファイル が必要です. 標準的な例は次のとおりです.

        #
        # makemap hash /etc/mailertable.db < /etc/mailertable
        #
        horus.interface-business.de   uucp-dom:horus
        .interface-business.de        uucp-dom:if-bus
        interface-business.de         uucp-dom:if-bus
        .heep.sax.de                  smtp8:%1
        horus.UUCP                    uucp-dom:horus
        if-bus.UUCP                   uucp-dom:if-bus
        .                             uucp-dom:sax
      

見れば分かるように, これは実在する設定のファイルです. はじめの 3 行はドメイン名で指定されたメールが default の経路で配送されずに, ``近道'' するために UUCP で隣りのサイトに送るための特別な状況を 処理するものです. 次の行は Ethernet でつながっているローカルのドメインに対しては SMTP で送るための設定です. 最後に, UUCP での隣りのサイトが. UUCP で終わる仮想ドメインの書式で 指定されており, default の rule を ``uucp-neighbour!recipient'' で上書きするためのものです. 一番最後の行はいつもドットを一つ書きます. これは, ここまでの行でマッチしなかったすべてのホストにマッチし, このサイトから世界に向けて出ていくための mail gateway に UUCP で配送するためのものです. uucp-dom: に続けて書かれているノード名は, uuname コマンドで指定することによって UUCP で直接配送される正しいノード名でなければなりません.

最後に, このファイルは使用する前に DBM データベースのファイルに 変換する必要があります. これをおこなうコマンドラインは mailertable の最初のコメントに書いてあります. mailertable を変更した時には, 必ずこのコマンドを実行してください.

最後のヒントです: もし特定のメール配送がうまく作動するかどうか 確かめたい場合には, sendmail の-bt オプションを 使用してください. このオプションによって sendmail は アドレステストモードで起動します. ``0 '' の後に 配送したいアドレスを書いてください. 最後の行に, 実際に使用される mail agent, この mail agent で送られる送信先のホスト, そして (多分変換されている) アドレスが表示されます. このモードを抜けるには Control-D を押してください.

        j@uriah 191% sendmail -bt
        ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
        Enter <ruleset> <address>
        > 0 foo@interface-business.de
        rewrite: ruleset  0   input: foo @ interface-business . de
        ...
        rewrite: ruleset  0 returns: $# uucp-dom $@ if-bus $: foo \
        < @ interface-business . de >
        > ^D
        j@uriah 192%
      


FreeBSD 2.X についての FAQ (よくある質問とその答え) : システム管理 : UUCP で mail を配送するには sendmail をどう使えばよいのですか?
Previous: FreeBSD は System V の IPC プリミティブをサポートしますか?
Next: ダイアルアップでインターネットに接続する環境でメールをセットアップするにはどうやるの?