このページではLinux構築した自宅サーバーで使用するMTAであるSendmailでの、メールの受信に関する設定について初心者向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
Sendmailの設定

Sendmailについて

Sendmailのファイル構成

sendmail.mcの編集と設定

sendmail.cfの作成

受信するホスト名の設定

ホスト名毎のメールの振分け

メール転送設定の使い分け

受信/転送に関する設定

Sendmailのコントロール

連携するアプリケーション等


自ホスト宛のメールアドレスの設定

このパートでは、電子メールを受け取った Sendmail の最初の振る舞い、すなわちその電子メールが自サーバー宛のものなのか、そうではないものなのか、の判別についての設定を説明します。

つまり、ここで「自分宛」と判定された電子メールについては、Sendmailはそれをサーバー上のメールボックス保存しようと試み、それ以外の電子メールで転送を許可されたものについては自分以外の メールサーバーへ への転送を試みることになります。

さて、通常電子メールは以下のような構造になっています。

電子メールの構造
電子メールの構造

MTA は任意の ホスト からメールを受信すると、まず "@" 以降の ドメイン名 FQDN を確認します。

そしてそれが自 ホスト 宛てに送られてきたメールの場合にはそのまま自ホスト上の アカウント のメールボックスに保存を試み、そうでない場合には DNSサーバー 名前解決 を行って、別の MTA への送信を試みます。

デフォルト 設定の Sendmail では、 "/etc/sysconfig/network" /etc/sysconfig/networkの設定(WBEL3) /etc/sysconfig/networkの設定(CentOS3) /etc/sysconfig/networkの設定(WBEL4) /etc/sysconfig/networkの設定(CentOS4) /etc/sysconfig/networkの設定(CentOS5) に記述されている "HOSTNAME" キーワードの値のみが自ホストを示すFQDNとして扱われます。

つまり、 構築中のLinuxサーバー では、

[アカウント名]@web1.obenri.com

だけが自ホスト宛てのメールとして扱われるにすぎません。

従って、一般的に用いられるスタイルの、

[アカウント名]@obenri.com

を自ホスト宛てのメールとして扱うには、明示的に別の設定を行う必要があります。

Sendmailでは正式なホスト名以外で、自ホストに保存すべきメールアドレスを設定するには、 "@" 以降のドメイン名やFQDNを、 "/etc/mail/local-host-names" に記述します。

まず、 cp コマンドでバックアップを作成した後、 nano エディタで "/etc/mail/local-host-names" を開きます nanoエディタでファイルを開く

[root@web1 ~]# cp /etc/mail/local-host-names /etc/mail/local-host-names.orgEnter
[root@web1 ~]# nano /etc/mail/local-host-namesEnter


nanoで/etc/mail/local-host-namesを開く
nanoで"/etc/mail/local-host-names"を開く

"/etc/mail/local-host-names"は、行頭に "#" を記述するとコメント文として無視されますから、自分で説明を入れたり、一時的に設定を無効にする場合などに利用してください。

設定は単純で、自ホスト宛てとして保存したいメールアドレスの "@" 以降を、一行ずつ記述するだけです。従って、

# local-host-names - include all aliases for your machine here.
obenri.com

のように記述すれば、 "[アカウント名]@web1.obenri.com" だけでなく、 "[アカウント名]@obenri.com" も自ホスト宛てとして取り扱われ、他のMTAに転送を試みられることなく保存されることになります。

これを例えば、

# local-host-names - include all aliases for your machine here.
obenri.com
mail.obenri.com

とすると、更に "[アカウント名]@mail.obenri.com" も自ホスト宛てのメールとして取り扱われるようになります。

また例えば、 "ugegege.com" "obenri.com" と同様に WAN 空間上で 構築中のLinuxサーバー 宛てに 名前解決 されていれば、単純に、

# local-host-names - include all aliases for your machine here.
obenri.com
mail.obenri.com
ugegege.com

と追加記述すれば、 "[アカウント名]@ugegege.com" も自ホスト宛てのメールとして取り扱われるようになります。

ただし、ここで注意が必要なのは"@"以降がFQDNの場合、そのFQDNは原則として、

送信側のMTAが参照するDNSサーバーが、 IPアドレス に名前解決できるものでなければらなない。

ということです。

例えば上の例では、正式なホスト名"web1.obenri.com"と"mail.obenri.com"、そして"ugegege.com"は ダイナミックDNS ダイナミックDNSの設定(WBEL3) ダイナミックDNSの設定(CentOS3) ダイナミックDNSの設定(WBEL4) ダイナミックDNSの設定(CentOS4) によって 構築中のLinuxサーバー WAN 側のIPアドレスに名前解決されるため受信可能になっています。

従ってもしも"tanaka@ddd.obenri.com"で受信を可能にしたい場合には、 サブドメイン "ddd.obenri.com" に対してDNSサーバー(もちろんダイナミックDNSでもOK)で名前解決が設定されていなければなりません。

ただし、 構築中のLinuxサーバー を送信メールサーバーとして、そのサーバー内の アカウント にメールを送信する場合、すなわちMTA間の転送が行われないメールの送信については、 "/etc/mail/local-host-names" にさえ記述されていれば任意のドメイン名やFQDNでも受信してしまいます。実在のドメイン名でも架空のドメイン名でも構いません。

極端にいえば"/etc/mail/local-host-names"を

# local-host-names - include all aliases for your machine here.
obenri.com
mail.obenri.com
microsoft.com

と設定しておき、送信メールサーバーを"mail.obenri.com"と設定した MUA から tanaka@microsoft.com 宛てにメールを送ると、 構築中のLinuxサーバー ユーザーアカウント "tanaka" のメールボックスに書き込まれることになります。

冒頭にも説明したとおり、これはSendmailの転送が、

1.送信されてきたメールアドレスの"@"以降を"/etc/mail/local-host-names"の内容と比較し、一致するものがあればサーバー自身のアカウント宛にメールデータを書き込む。

2."/etc/mail/local-host-names"の内容と一致しなかった場合はDNSサーバーを参照して送信先のメールサーバーを探す。

という手順で行われるために起こる現象です。

もちろんこんなことをすると、本物の "*****@microsoft.com" 宛てには全くメールを送ることができなくなるのでご注意ください。

ということは、MUAの 「送信メールサーバー」 "mail.obenri.com" という設定を行っておけば、"/etc/mail/local-host-names"に一致するドメイン名やFQDNはすべてサーバー内に取り込まれるわけですから、全員が "*****@microsoft.com" でメールをやり取りすることも可能というわけです。

Sendmailの構築に
役立つ一冊です

この"/etc/mail/local-host-names"は、Sendmailが起動するときに読み込まれて有効になりますから、この設定を変更したときは必ず Sendmailのコントロールについて を参考にSendmailの再起動、または設定の再読み込みを行ってください。

関連セクションへ 関連セクション・ メールサーバーの構築

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System