FreeBSD ハンドブック
Prev | Chapter 20. 電子メール | Next

# 20.6. 先進的なトピックス

これからのセクションでは、 メールの設定やドメイン全体のためのメールの設定といったさらに突込んだ話題について触れます。

## 20.6.1. 基本事項

あなたのマシンに FreeBSD を普通にインストールして、 `/etc/resolv.conf` ファイルを設定するか、 またはネームサーバを走らせれば、 他のホストへ電子メールを送ることができるようになります。 あなたのホスト宛のメールをあなた自身の FreeBSD ホスト上の MTA (たとえば sendmail) に配送するようにしたい場合には、次の二つの方法があります。

- 自身でネームサーバーを実行し、 自分のドメインを持つ。例えば `FreeBSD.org`。

- あなたのホストへ直接メールが配送されるようにする。 これはメールがあなたのマシンの現在の DNS 名に直接配送されるようにすることにより実現できます。 たとえば `example.FreeBSD.org`。

上のどちらを選ぶ場合でも、自分のホストに直接メールが配送されるようにするには恒久的で 静的 な IP アドレス (ほとんどの PPP ダイアルアップ設定で用いられる動的なアドレスではなく) を持っていなければなりません。 もしファイアウォールの中にいるならば、 SMTP トラフィックが通過してくれないといけません。 もし自分のホストでメールを直接受け取りたいならば、 次の二つのうちのどちらかができていることを確認してください。

- 自分のドメインでの (一番値の小さい) MX レコードが自分のホストの IP アドレスを差していることを確認する。

- 自分のドメインの中に自分のホスト用の MX エントリがないことを確認する。

上のどちらかが設定されていれば、 自分のホストでメールを受け取ることができるでしょう。

次のコマンドを実行してみてください。

    # hostname
    example.FreeBSD.org
    # host example.FreeBSD.org
    example.FreeBSD.org has address 204.216.27.XX

もしあなたのマシンが上記のメッセージだけを出力したならば、 `<yourlogin@example.FreeBSD.org>` へのメールは問題なく配送されるでしょう (sendmail が `example.FreeBSD.org` 上で正しく動作していると仮定します)。

上記のメッセージの代わりに、

    # host example.FreeBSD.org
    example.FreeBSD.org has address 204.216.27.XX
    example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org

というメッセージが出力された場合は、 あなたのホスト (`example.FreeBSD.org`) に宛てたメールは全て直接配送されずに `hub` 上の同じユーザー名に配送されます。

上の情報は DNS サーバーが扱います。 メールルーティング情報をもつ DNS レコードは、 Mail eXchange エントリーです。 MX エントリが存在しない場合には、IP アドレスにしたがって、 直接宛先ホストに配送されます。

`freefall.FreeBSD.org` の現時点での MX エントリは、次のようになっています。

    freefall       MX  30  mail.crl.net
    freefall        MX  40  agora.rdrop.com
    freefall        MX  10  freefall.FreeBSD.org
    freefall        MX  20  who.cdrom.com

`freefall` は多くの MX エントリを持っています。 一番 MX の値の小さいホストが利用可能な場合は直接メールを受け取ります。 もしなにかの理由でアクセスができない時には、 他のホスト (ときどき “バックアップ MX” と呼ばれます) が一時的にメールを受け取ります。そして、 より値の小さいホストが利用可能になったときにメールを渡し、 最終的に一番値の小さいホストに渡ります。

使い勝手をよくするためには、代替の MX サイトは、それぞれ 別の経路でインターネットへ接続しているとよいでしょう。 インターネットプロバイダまたは他の関連サイトが、このサービスを 提供することができます。

## 20.6.2. あなたのドメインに対するメール設定

“メールホスト” (メールサーバーとしても知られています) をセットアップするためには、 いろいろなワークステーションに宛てた全てのメールを受ける必要があります。 基本的には、あなたのドメイン内 (この場合だと `*.FreeBSD.org`) のすべてのホスト名宛てのすべてのメールを “受け取って”、 そのメールをあなたのメールサーバーに配送し、 ユーザーがマスタメールサーバ上でメールをチェックできるようにします。

話を簡単にするために、あるユーザーのアカウントはどのマシンでも同じユーザー名にすべきです。 そのためには adduser(8) を使ってください。

使用する予定のメールホストは、 各ワークステーションごとにメール交換が できるように設定されていなければなりません。 これは DNS の設定で次のように行なうことができます。

    example.FreeBSD.org    A   204.216.27.XX       ; ワークステーション
    MX  10 hub.FreeBSD.org  ; メールホスト

これは、ワークステーションの A レコードがどこを指していようとも そのワークステーション宛てのメールをメールホストに転送する、というものです。

自前で DNS サーバを運用しているのでなければ、 この作業は自分では行えません。自分で DNS サーバを運用しないとかできないという場合は、 あなたの DNS を提供しているインターネットプロバイダなどに依頼して 作業を行ってもらってください。

もしバーチャル電子メールホストを運用するなら次の情報が役に立つでしょう。 例として、あなたには自分のドメイン、ここでは `customer1.org`、 を持っている顧客がいるとしましょう。 あなたは `customer1.org` 宛ての全てのメールを `mail.myhost.com` というメールホストに集めたいとします。 DNS エントリーは次のようになるでしょう。

    customer1.org      MX  10 mail.myhost.com

`customer1.org` に対して電子メールを送りたいだけなら、 A レコードは必要ありません。

> Note: `customer1.org` に対して ping を実行しても、 A レコードが存在しない限りうまくいかないことに留意しておいてください。

やらなければいけない最後のことは、 メールホスト上の sendmail に対してどんなドメインやホスト宛のメールを受け取るのか、 を教えることです。いくつかの方法がありますが次のどちらかでいいでしょう。

- `FEATURE(use_cw_file)` を使っているなら、 `/etc/mail/local-host-names` ファイルにホストを加えます。 もし sendmail のバージョンが 8.10 より前であれば該当ファイルは `/etc/sendmail.cw` です。

- `/etc/sendmail.cf` もしくは sendmail 8.10 以降なら `/etc/mail/sendmail.cf` といったファイルに `Cwyour.host.com` という行を加えます。

Prev | Home | Next
トラブルシュート | Up | UUCP とともに SMTP を使う