|
|
Postfixの設定
|
PostfixについてPostfixのファイル構成設定ファイルmain.cfについてホスト名とドメイン名の設定受信するホスト名の設定ホスト名毎のメールの振分けメール転送設定の使い分け受信/転送に関する設定セキュリティ関連の設定"main.cf"の書式チェックPostfixのコントロール連携するアプリケーション |
ホスト名ごとのメールボックス振分け
Postfix
の利用で、
"mydestination"
ディレクティブ
の記述
それは、例えば "tanaka@obenri.com" 、 "tanaka@mail.obenri.com" 、 "tanaka@ugegege.com" など、 アカウント の部分が "tanaka" であるメールアドレス宛のメールデータは、メールアドレスとしてはすべて異なるにも係わらず、ひとつのメールボックス "/var/spool/mail/tanaka" に書き込まれることです。 これらのメールアドレスの利用者がすべて同じ人であれば良いのですが、それぞれのユーザーが別人である場合はちょっと困ったことになります。 もしもアカウント名にこだわりがなければ、例えばユーザーアカウントを、 "t_tanaka" 、 "s_tanaka" のように別々に作成して、メールアドレスごと別にしてしまうという強引な方法もあります。 しかし普遍的なメールアドレスの場合、例えば、 "webmaster@obenri.com" を既にあなたが使っているとすると、 "webmaster@ugegege.com" は別の人に使わせることができなくなってしまうことになります。 こういう場合に役に立つのが、 "virtual_alias_maps" ディレクティブ を利用したメールデータの振分け機能です。 この機能は自ホスト宛のメールアドレスの "@" 以降を検査し、サーバー内の特定のアカウントのメールボックスに書き込む仕組みを提供するもので、 サブドメイン や異なる ドメイン名 をひとつのPostfixで扱うときに、上のような不具合を解消します。 以下に、その使用方法について説明します。
関連セクション・
メールサーバーの構築
"virtual_alias_maps"の指定"/etc/postfix/main.cf" 内に記述する ディレクティブ で、別途作成するメール受信 アカウント 振分け用の データベース を指定します。 デフォルト では "/etc/postfix/main.cf" 内に記述はありませんので、新規に記述します。
記述の場所は任意ですが、ここに記述するメールアドレスの
ホスト名
は
"mydestination"
ディレクティブ
データーベース名には任意のファイル名を指定することができますが、ここでは "/etc/postfix/virtual_users.db" というファイル名でデータベースを作成するものとします。 この場合、
と記述します。 |
|||||||||
|
Postfixの構築に
役に立った一冊です ↓ |
実際に参照するデータベースには末尾に ".db" が付加されますが、"virtual_alias_maps"ディレクティブには ".db" は省略して記述します。 また、 WBEL や CentOS に インストール される Postfix ではhash形式が標準のデータベース形式として扱われますので、 パラメータの先頭には "hash:" を記述しておきます。
設定を有効にするにはファイルを保存してnanoエディタを終了し
関連セクション・
メールサーバーの構築
|
|||||||||
メール受信アカウント振り分け用データベースの作成次に、具体的にメールボックスの振分けを行う データベース を作成しましょう。 |
||||||||||
|
|
例えば以下のような方法で新規に テキスト ファイル "/etc/postfix/virtual_users"を作成してください。
この"/etc/postfix/virtual_users"をnanoエディタで開き
[受信対象のメールアドレス] [書き込み先のアカウント] という書式で記述を行います。 一つの設定は一行で記述し、二つのパラメータの間は空白またはタブで区切ります。 例えば以下のように記述します。
この設定によって、 "webmaster@obenri.com" 宛てのメールは ユーザーアカウント "webmas_obenri" のメールボックスへ、 "webmaster@ugegege.com" 宛てのメールはユーザーアカウント "webmas_ugegege" のメールボックスへ書き込まれることになります。
記述が終わったら"/etc/postfix/virtual_users"を保存し、nanoエディタを閉じます
次に postmap コマンド を使ってこの テキストファイル を バイナリ 形式の データベース "/etc/postfix/virtual_users.db" に変換します。
次に、 useradd コマンドで書き込み先のユーザーアカウントをそれぞれ作成します。 MUA で受信するためのパスワードも passwd コマンドで設定しておきましょう。
以上で設定は終わりです。 この場合、メールアドレス "webmaster@obenri.com" を利用するユーザーのMUAの設定パラメータは以下のようになります。 メールアドレス: webmaster@obenri.com 受信メールサーバー(POP3): mail.obenri.com 送信メールサーバー(SMTP): mail.obenri.com アカウント名またはユーザー名: webmas_obenri パスワード: web1.obenri.comシステム上のwebmas_obenriのパスワード 一方、メールアドレス "webmaster@ugegege.com" を利用するユーザーのMUAの設定パラメータは以下のようになります。 メールアドレス: webmaster@ugegege.com |
|||||||||
| DNSサーバー で "mail.ugegege.com" が設定済みであれば、それを設定することもできます。 |
受信メールサーバー(POP3): mail.obenri.com 送信メールサーバー(SMTP): mail.obenri.com アカウント名またはユーザー名: webmas_ugegege パスワード: web1.obenri.comシステム上のwebmas_ugegegeのパスワード 以上が"/etc/postfix/virtual_users"を用いた基本的な「ホスト名ごとのメールの振分け」の設定になります。
関連セクション・
メールサーバーの構築
|
|||||||||
"virtual_alias_domains"の使用について
"/etc/postfix/virtual_users.db"
は、
構築中のLinuxサーバー
が受信するメールアドレスの設定
"mydestination"
ディレクティブ
|
||||||||||
|
|
また、 [書き込み先のアカウント] が存在しない場合は「宛先不明」として処理されますので、同じ名前の アカウント の作成も忘れないようにしてください。 さて、"/etc/postfix/virtual_users.db"の利用については、一つ大きな注意点があります。それは例えば "tanaka@obenri.com" と "tanaka@ugegege.com" の振分けにおいて、既に 構築中のLinuxサーバー 上に "tanaka" というアカウントが存在するケース、つまり一般的にいうと、 「メールのアカウント名と同名のアカウントがシステム上に存在する場合」 の扱いが難しくなるということです。 通常 Postfix は、例えば "tanaka@[ホスト名]" 宛てに送られてきたメールデータについて、ホスト名が"mydestination"ディレクティブと一致した場合には、 "@" より前の部分のアカウント名に一致するアカウントを 構築中のLinuxサーバー 上から探し、メールボックスへの保存を試みます。 ところが、"/etc/postfix/virtual_users.db"に有効な設定が存在すると、同名のアカウントへの書き込みを試みる前に"/etc/postfix/virtual_users.db"が参照されるようになります。 そして"/etc/postfix/virtual_users"に記述された上の行から順に評価され、書き込みの条件が一致してメールボックスへの書き込みが終了した段階で処理が終了します。 そして、もしも"/etc/postfix/virtual_users.db"で設定されたどの条件とも一致しなかった場合に、Postfixは 同名のアカウントへの書き込みを試みる ことになります。 ということは、例えば"mydestination"ディレクティブに、
という設定があり、"/etc/postfix/virtual_users"で、
という設定を有効にしているとすると、"/etc/postfix/virtual_users"に明示されていない "tanaka@mail.obenri.com" 宛てのメールは、アカウント "tanaka" のメールボックスに書き込まれることになります。 従って、「アカウント "tanaka" は、 "tanaka@obenri.com" 宛てのメール以外は受け付けない。」という設定にしたければ、"/etc/postfix/virtual_users"には、 |
|||||||||
| tanaka@mail.obenri.com宛てのメールは「宛先不明」として処理したいので、存在しないアカウント "no_user" に対して架空の転送処理を行います。 |
と、"mydestination"ディレクティブに記述されているすべてのホスト名について明示的に設定しなければならないことになります。 もちろんこの程度であれば大した面倒でもないのですが、Postfixで扱う ドメイン名 が増えると、"/etc/postfix/virtual_users"にはその都度記述を増やさなければなりません。 例えば"mydestination"ディレクティブが、
となった場合、"/etc/postfix/virtual_users"は、
と 「受信をしないためのやむをえない記述」 ばかりになってしまいます。 ここではアカウント "tanaka" に限って説明しているので記述はまだ簡単ですが、メールサーバーを利用するユーザーの数だけこの 「受信をしないための記述」 をしなければならないことを考えると、実際の設定作業は恐ろしく面倒なことになるでしょう。 ところが、 構築中のLinuxサーバー に "tanaka" というアカウントが存在せず、 "tanaka@obenri.com" 宛てのメールを受信するアカウントとして "tanaka_obenri" を使うとすれば、"/etc/postfix/virtual_users"の設定は、
だけで済みます。 今度は "tanaka" というアカウントがシステム上に存在しないわけですから、この"/etc/postfix/virtual_users"に記述されていない "tanaka@[ホスト名]" 宛てのメールは書き込み先のメールボックスが存在せず、自動的に「宛先不明」として処理されることになります。 同じ理由から、"mydestination"ディレクティブの記述がいくら増えても、このケースでは"/etc/postfix/virtual_users"への記述の修正や追記の必要はありません。 結局のところ、複数のホスト名を併用する場合の運用のコツは、 「メールアドレスのアカウント名と、サーバー上のアカウントを同じ名前にしないように運用する。」 ということに尽きるかもしれません。 ところでPostfixには、こういったケースに予め対処するため、 "/etc/postfix/main.cf" 内に記述する ディレクティブ として、 「"/etc/postfix/virtual_users"でメールアドレス一致しなかったとき、他のホスト名との評価をせずに宛先不明として処理するホスト名を指定する。」 という働きをする、 "virtual_alias_domains" があります。 デフォルト では "/etc/postfix/main.cf" 内に記述はありませんので、新規に記述します。 |
|||||||||
|
|
記述の場所は任意ですが、ここに記述する
ホスト名
は
"mydestination"
ディレクティブ
例えば、
という記述を行うと、 "tanaka@mail.obenri.com" 宛てに送られてきたメールは、"/etc/postfix/virtual_users"内に"tanaka@mail.obenri.com"に関する転送設定が記述されていない場合、サーバーシステム内に "tanaka" というアカウントが存在していてもメールボックスに書き込まれることはなく、「宛先不明」として処理されるようになります。 一般に バーチャルホスト としてのメールアドレスはこのような「独立的な」扱いが多いので、メールアドレスのホスト名として後から追加する場合はこのvirtual_alias_domains"に記述しておくほうが良いと思われます。 なお、ここでは"virtual_alias_domains"の記述について、 "/etc/postfix/main.cf" に直接ホスト名を記述しましたが、設定するホスト名が多いときはホスト名のリストファイルを作成して利用することもできます。 また、リストファイルを データベース すれば大量のホスト名をダイナミックに利用することもできます。 もちろん、個人の用途でしたらリストやデータベースに頼る必要はないでしょうから、ここでの説明は割愛します。
関連セクション・
メールサーバーの構築
|
|
|
受信するホスト名の設定
<<Previous
|
Next>>
メール転送設定の使い分け
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |