次のページ 前のページ 目次へ

4. メール・トランスポートエージェント

この章は、リモートシステムと接続するための基礎となるトランスポートエー ジェントについて書かれています。

4.1 Smail v3.1

Smail3.1 は、UUCP のみのサイトやいくつかの smtp サイトでよく使われてい るトランスポートエージェントで、ソースコードから(パッチを必要とせず) コンパイルすることができます。また、 SLS 版 Linux にはバイナリが含まれ ています。

smail3.1.28 をすぐに利用するための設定ファイルが、newspak アーカイブに 入っています。(newspak に関しては「2.0 ソフトウェアの取得」を参照。)

smail をソースファイルから構築するには、 sed に渡すシェルスクリプトが 正確に動作するように、os/linux ファイルに以下の設定が必要です。

        CASE_NO_NEWLINES=true

MX-record と(全てのホストを経由できるような)ドメイン形式ヘッダを要求 される UUCP のみのシステムには、以下の設定ファイルが必要でしょう。

        #-------- /usr/local/lib/smail/config -----------------
        #
        # domains we belong to
        visible_domain=subdomain.domain:uucp
        #
        # who we're known as (fully-qualified-site-name)
        visible_name=myhostname.subdomain.domain
        #
        # who we go through
        smart_path=my_uucp_neighbor
        #
        #---------- /usr/local/lib/smail/paths --------------
        #
        # we're a domainized site, make sure we accept mail to both names
        myhostname        %s
        myhostname.subdomain.domain      %s
        #
        #-------------------------------------------------------------------
smail を smtp デーモンとして使うには、下の行を /etc/inetd.conf に追加 して下さい。
                smtp stream tcp nowait  root  /usr/bin/smtpd smtpd
elm を使えば、外部のサイトに宛てたメールが自動的に送信されます。送信中 にインターネットリンクが切断されたとしても、メールは "/usr/spool/smail/input" に保存され、次にリンクが回復した時点 で、メールを送るために "runq" が実行されます。

4.2 Sendmail+IDA

極めて扱いやすいので、私は smail3.1.28 の代わりに sendmail5.65b+IDA1.5 を UUCP のみのサイトで使っています。コンパイルされたものが sunsite.unc.edupub/Linux/system/Mail にあります。 インストールする方法を以下に示します。

mail.debug セットを持っていて、かつ syslogd を動かしていれば、送受信さ れたメールの内容がログに残ります。詳しくは /etc/syslogd.conf ファイル を見て下さい。

uxc.cso.uiuc.edu には、そのまま Linux で動作させることのできる sendmail+IDA のソースファイルが置かれています。

sendmail+IDA を動作させているのなら、 Linux 特有のパッチが含まれていて、 なおかつ、 1993 年 12 月 1 日以前に作成された古いバージョンにも含まれ ている、いくつかのセキュリティホールが直された sendmail5.67b+IDA1.5 バー ジョンを使うようにして下さい。

Linux Journal の 1994 年 5/6 月号に、 sendmail+IDA の設定や運 用等の広範囲にわたる記事が載っています。より詳細で完全なものが、 Linux DOC Porject の Networking Administration Guide として編集され ています。

sendmail.m4 ファイル

Sendmail+IDA を使うには、 sendmail.cf ファイルを直接編集する よりむしろ sendmail.m4 ファイルの設定が必要です。この方法の利 点は、伝統的な smail や sendmail の設定が(ほとんどの人には正しく設定 することがほとんど不可能なほど)非常に難しいのに比べて、非常に簡単なこ とです。

その sendmail.m4 ファイルは、上記の smail の例と同じ設定にするためには、 以下のようになります。

  dnl #------------------ SAMPLE SENDMAIL.M4 FILE ------------------
  dnl #
  dnl # (the string 'dnl' is the m4 equivalent of commenting out a line)
  dnl #
  dnl # you generally don't want to override LIBDIR from the compiled in paths
  dnl #define(LIBDIR,/usr/local/lib/mail)dnl    # where all support files go
  define(LOCAL_MAILER_DEF, mailers.linux)dnl    # mailer for local delivery
  define(POSTMASTERBOUNCE)dnl                   # postmaster gets bounces
  define(PSEUDODOMAINS, BITNET UUCP)dnl         # don't try DNS on these
  dnl #
  dnl #-------------------------------------------------------------
  dnl #
  dnl # names we're known by
  define(PSEUDONYMS, myhostname.subdomain.domain myhostname.UUCP)
  dnl #
  dnl # our primary name
  define(HOSTNAME, myhostname.subdomain.domain)
  dnl #
  dnl # our uucp name
  define(UUCPNAME, myhostname)dnl
  dnl #
  dnl #-------------------------------------------------------------
  dnl #
  define(UUCPNODES, |uuname|sort|uniq)dnl       # our uucp neighbors
  define(BANGIMPLIESUUCP)dnl                    # make certain that uucp
  define(BANGONLYUUCP)dnl                       #  mail is treated correctly
  define(RELAY_HOST, my_uucp_neighbor)dnl       # our smart relay host
  define(RELAY_MAILER, UUCP-A)dnl               # we reach moria via uucp
  dnl #
  dnl #--------------------------------------------------------------------
  dnl #
  dnl # the various dbm lookup tables
  dnl #
  define(ALIASES, LIBDIR/aliases)dnl            # system aliases
  define(DOMAINTABLE, LIBDIR/domaintable)dnl    # domainize hosts
  define(PATHTABLE, LIBDIR/pathtable)dnl        # paths database
  define(GENERICFROM, LIBDIR/generics)dnl       # generic from addresses
  define(MAILERTABLE, LIBDIR/mailertable)dnl    # mailers per host or domain
  define(UUCPXTABLE, LIBDIR/uucpxtable)dnl      # paths to hosts we feed
  define(UUCPRELAYS, LIBDIR/uucprelays)dnl      # short-circuit paths
  dnl #
  dnl #--------------------------------------------------------------------
  dnl #
  dnl # include the 'real' code that makes it all work
  dnl # (provided with the source code)
  dnl #
  include(Sendmail.mc)dnl                         # REQUIRED ENTRY !!!
  dnl #
  dnl #------------ END OF SAMPLE SENDMAIL.M4 FILE -------
 

ローカルメイラの設定

他の Unix と違って Linux はそのままではローカルなメイルの配送システム がありません。私は deliver プログラムを使うことをお勧めします。 このプログラムは多くの Linux パッケージに含まれていると思います。その ためには sendmail.m4 ファイルの中のLOCAL_MAILER_DEF という項目を次のように設定する必要があります。

  # -- /usr/local/lib/mail/mailers.linux --
  #     (local mailers for use on Linux )
  Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
  Mprog,  P=/bin/sh,       F=lsDFMeuP,   S=10, R=10, A=sh -c $u

sendmail.cf に読み込まれる Sendmail.mc ファイルには 標準で deliver の設定が組み込まれています。ローカルメイラの設 定のためには mailers.linux ファイルを使わずに、sendmail.m4 ファ イルに次のような設定を書き込んでください。

   dnl --- (in sendmail.m4) ---
   define(LOCAL_MAILER_DEF, DELIVER)dnl       # mailer for local delivery

残念ながら Sendmail.mc は deliver が /bin ディレクトリにインストールさ れていることを前提にしていますが、 Slackware 1.1.1 では /usr/bin にイ ンストールされます。この場合には deliver のリンクを張るか、ソースから コンパイルし直して /bin にインストールしなくてはなりません。

Sendmail+IDA の dbm テーブル

サイトやドメイン内の特殊なメール配送は、sendmail.cf を直接編 集するよりも、多くの dbm テーブルを書き換える方がいいでしょう。 これについては Linux Journal の 1994 年 7 月号、ソースファイ ルに含まれる文書、LDP (Linux Documentation Project) の Networking Administration Guide を参考にするとよいでしょう。

どのエントリが本当に必要なのか?

dbm テーブルを追加していないときには、sendmail+IDA はメールを DEFAULT_MAILER を経由して(または可能ならば RELAY_HOSTRELAY_MAILER をも使って)送ります。 これらの DEFAULT_MAILER などは sendmail.m4 ファイルに書き込ま れ、sendmail.cf に設定された内容で定義されています。この動作はドメイン テーブルか uucpxtable の内容によって変更することができます。

インターネットにつながり、ネームサーバーと通信のある普通のサイトや、 UUCP 接続のホストで、メールを UUCP によって RELAY_HOST に送っ ているサイトでは、たぶん特別なエントリは必要ないでしょう。

仮想的にはすべてのシステムが DEFAULT_HOSTPSEUDONYMS マクロを設定するべきです。これはカノニカルサイト名 とエイリアス、そして DEFAULT_MAILER を設定します。しかしリレー ホストとリレーメイラーしかない場合、わざわざ設定しなくてもうまく動作す るでしょう。

UUCP ホストではたぶん UUCPNAME に正式な UUCP のホスト名を設定 しなくてはならないでしょう。また、より良いメール配送のルーティングのた めに、RELAY_MAILERRELAY_HOST 、そして UUCP サイ トに対しては UUCP-A も設定することになるでしょう。

もしもあなたのサイトが SMTP のみを使っていて、ドメイン・ネームサーバ (DNS)を利用しているならば、の DEFAULT_MAILER を TCP-A に変え て、RELAY_MAILERRELAY_HOST の行を消去したほうが よいでしょう。

4.3 Sendmail 8.6

バークレイの Sendmail 8.6.x は、 Sendmail5 の後の最新のメジャーな改訂 版です。これには、 Linux で構築するための機能がサポートされています。 make Linux と入力するだけで、全て手に入ります。

4.4 WIDE 版 Sendmail 8.6 (この節は訳者が書き加えました)

日本国内のユーザーは、JE パッケージから WIDE 版の sendmail をインストー ルするとよいでしょう。詳しくは JE-HOWTO なども見てください。同時に CF-3.3Wb7 をインストールすると、sendmail.cf の作成が容易に行なえます。 日本語の詳しいドキュメントもついています。

4.5 その他のトランスポートエージェント

Linux で動くことが知られているものを、下に書きます。どこにあるかは archie で調べて下さい。

4.6 ローカル配信エージェント

Linux には、他の OS にあるような内蔵されたメールシステムがありませんの で、ローカルメールを配信するプログラムが必要です。Rich Braun の lmail プログラムは良いプログラムですが、もっと有名な配信プログラムに切替えて 使っています。

いずれかのローカル配信エージェントを使う方法についての文書は、 先に書 いた sendmail5.67b+IDA1.5 のバイナリに含まれています。


次のページ 前のページ 目次へ