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

Postfixについて

Postfixのファイル構成

設定ファイルmain.cfについて

ホスト名とドメイン名の設定

受信するホスト名の設定

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

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

受信/転送に関する設定

セキュリティ関連の設定

"main.cf"の書式チェック

Postfixのコントロール

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


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

以下は、 Postfix の主設定ファイル "/etc/postfix/main.cf" の設定項目の中で、

メールサーバー が、自分自身や MUA 、あるいは他のメールサーバーから送られてきたメールに対して、これを自分宛のものとして保存処理を試みるか、それとも他のメールサーバーへの転送処理を試みるかの判定。」

を行う部分に関する解説です。

設定自体は難しくありませんが、仕組みを理解していないと思わぬ落とし穴にハマりますので詳しく説明します。

"mydestination"〜自ホスト宛のメールアドレス

WBEL3 及び CentOS3 では 156行目〜 、WBEL4及びCentOS4では 154行目〜 、CentOS5では 156行目〜 あたりに記述があります。

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

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

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

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

"mydestination" は、 Postfix が自ホスト宛てとして保存すべきメールアドレスの "@" 以降を設定する ディレクティブ です。

WBEL3及びCentOS3の場合 デフォルト では、

mydestination = $myhostname, localhost.$mydomain
#mydestination = $myhostname, localhost.$mydomain $mydomain
#mydestination = $myhostname, localhost.$mydomain, $mydomain,
#    mail.$mydomain, www.$mydomain, ftp.$mydomain

WBEL4、CentOS4、CentOS5の場合 デフォルト では、

mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#    mail.$mydomain, www.$mydomain, ftp.$mydomain

となっていますから、[アカウント名]@web1.obenri.com、及び[アカウント名]@localhost.obenri.com、WBEL4及びCentOS4では更に[アカウント名]@localhostが自ホスト宛てのメールとして扱われます。

しかしながら実際にホスト内に保存すべきメールアドレスは、

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

が中心になるはずです。

更に自ホスト内で動作する アプリケーション から送信されるメールは、 "@" 以降に "/etc/sysconfig/network" /etc/sysconfig/networkの設定(WBEL3) /etc/sysconfig/networkの設定(CentOS3) /etc/sysconfig/networkの設定(WBEL4) /etc/sysconfig/networkの設定(CentOS4) /etc/sysconfig/networkの設定(CentOS5) に記述されている "HOSTNAME" キーワードの値が使われますから、

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

も必須のパラメータになるでしょう。

従ってこの設定は、 "mydomain" ディレクティブと "myhostname" ディレクティブがそれぞれ "obenri.com" 及び "web1.obenri.com" に設定されていれば main.cfでのホスト名とドメイン名の設定について 、それぞれの変数を利用して、

右はWBEL3及びCentOS3での記述例です。
既存の設定はコメント化するだけですので、WBEL4やCentOS4をお使いの場合は既存の設定から "localhost" の記述を削除する必要はありません。
老婆心ながら。
#mydestination = $myhostname, localhost.$mydomain
#mydestination = $myhostname, localhost.$mydomain $mydomain
#mydestination = $myhostname, localhost.$mydomain, $mydomain,
#    mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $mydomain, $myhostname

と記述しておくと良いでしょう。

これを例えば、

#mydestination = $myhostname, localhost.$mydomain
#mydestination = $myhostname, localhost.$mydomain $mydomain
#mydestination = $myhostname, localhost.$mydomain, $mydomain,
#    mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $mydomain, $myhostname, mail.$mydomain

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

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

#mydestination = $myhostname, localhost.$mydomain
#mydestination = $myhostname, localhost.$mydomain $mydomain
#mydestination = $myhostname, localhost.$mydomain, $mydomain,
#    mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $mydomain, $myhostname, mail.$mydomain, 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) ダイナミックDNSの設定(CentOS5) によって 構築中のLinuxサーバー WAN 側のIPアドレスに名前解決されるため受信可能になっています。

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

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

極端にいえば "mydestination" ディレクティブを

#mydestination = $myhostname, localhost.$mydomain
#mydestination = $myhostname, localhost.$mydomain $mydomain
#mydestination = $myhostname, localhost.$mydomain, $mydomain,
#    mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $mydomain, $myhostname, microsoft.com

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

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

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

2."mydestination"ディレクティブの内容と一致しなかった場合はDNSサーバーを参照して送信先のメールサーバーを探す。

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

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

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

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

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