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

13. sendmailの設定

いくつかエイリアスを作る必要がありその結果sendmailは you@somemachine.dink.comyou@pager.dink.comにメッセージを 区別して送ることができます(somemachineとpagerは実際は同じマシンです)。 これを行うためにsendmailエイリアスデータベースを設定する必要があります。

  1. ファイルを作ります。/etc/domainaliasはhost名「pager」を 実際のhost名に変換します。著者のマシン(luckenbach)では変換ファイルは 以下のようになっています:
            chris@pager.unm.edu      cjs-pager@luckenbach.unm.edu
            droux@pager.unm.edu      nicolas-pager@luckenbach.unm.edu
    
    これは/etc/domainaliasです。これでほとんどできています。 以下のスイッチを付けてコンパイルしたsendmailバイナリを使います;
            -DNDBM -DNEWDB
    
    作ったdomainalias.dbファイルを読む必要のあるデータベース操作コード に許可を与えます。
  2. makemapユーティリティがあることを確認します(sendmail配布パッケージ の一部です)。準備していなかったらコンパイルしておいて下さい。 これは必要ではないかもしれません。hash, dbm, btreeがサポートされていよう がなかろうがチェックして下さい。これがどのように行われているかつぎの ステップをチェックして下さい)
            # cd /usr/src/sendmail-8.7.x/makemap
            # rm Makefile makemap
            # make CFLAGS='-m486 -O2 -I../src -DNDBM -DNEWDB' LDFLAGS='-s 
                    -lgdbm -ldb' makemap
            # cp makemap /usr/bin
    
  3. /etc/sendmail.cfに以下の行を追加します。sendmailが 新しい仮想host名のメールを許可するためです:
         Cw pager.yourdomain.com
    
  4. /etc/domainaliasesをデータベースフォーマットに変換します:
         makemap btree domainaliases.db < domainalisaes
    
  5. /etc/sendmail.cfに別の行を追加します。これは コンパイルした domainaliases.db 変換ファイルをsendmailに指示するためです:
         Kdomainaliases btree /etc/domainaliases.db
    
  6. ルールセットについて/etc/sendmail.cfに正確に書かれていることを 確認して下さい。エントリはTABで区切られています。SPACEは使わないで下さい!! これらはS98ルールセットを挿入しています。
  7. sendmailデーモンをいったんkillして再スタートし、新しい設定を 有効にします。
        /sbin/killall sendmail
        sendmail -bd -q15m
    
  8. 最後に新しい設定が正しく行われるか確認します。 エラーメッセージは/var/log/maillogに出力されます。
    lonestar~>  sendmail -bt
    ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
    Enter <ruleset> <address>
    > 0 chris@PAGER.phys.unm.edu
    rewrite: ruleset  0   input: chris @ pager . phys . unm . edu
    rewrite: ruleset 98   input: chris @ pager . phys . unm . edu
    rewrite: ruleset 98 returns: chris @ pager . phys . unm . edu
    rewrite: ruleset 97   input: chris @ pager . phys . unm . edu
    rewrite: ruleset  3   input: chris @ pager . phys . unm . edu
    rewrite: ruleset 96   input: chris < @ pager . phys . unm . edu >
    rewrite: ruleset 96 returns: chris < @ pager . phys . unm . edu . >
    rewrite: ruleset  3 returns: chris < @ pager . phys . unm . edu . >
    rewrite: ruleset  0   input: chris < @ pager . phys . unm . edu . >
    rewrite: ruleset 98   input: chris < @ pager . phys . unm . edu . >
    rewrite: ruleset  3   input: cjs-pager @ lonestar . phys . unm . edu
    rewrite: ruleset 96   input: cjs-pager < @ lonestar . phys . unm . edu >
    rewrite: ruleset 96 returns: cjs-pager < @ lonestar . phys . unm . edu . >
    rewrite: ruleset  3 returns: cjs-pager < @ lonestar . phys . unm . edu . >
    rewrite: ruleset 98 returns: cjs-pager < @ lonestar . phys . unm . edu . >
    rewrite: ruleset  0 returns: $# local $: @ cjs-pager
    rewrite: ruleset 97 returns: $# local $: @ cjs-pager
    rewrite: ruleset  0 returns: $# local $: @ cjs-pager
    

  9. もしこれがちゃんと動作しなかったり理解できなかった場合はsendmailのエキスパート に相談してみて下さい。


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