web-dev-qa-db-ja.com

1つのドメインに2つの技術的に異なるメールサーバー(Postfix / Exchange)

DebainPostfixメールサーバーに数人のユーザーがいます。すべて良好。次に、一部のユーザーをホストされたExchange Server(Office 365)に配置する必要があります。

このように1つのドメインのメールサーバーとDNSMXを構成して、ユーザーの受信トレイがserver1にない場合、ルックアップがserver2に転送されるようにすることは可能ですか?

  • そのためのベストプラクティスは何ですか?
  • 送信SMTPは誰ですか?

ありがとうピーター

2
tromm

ええと....いいえ、はい。

問題は、DNS MXレコードのルックアップが実行されると、DNSサーバーはユーザーが誰であるかを認識しないため(その情報はDNSサーバーに送信されない)、DNSサーバーは特別なMXレコードを送信できないことです。一部のユーザー。 DNSがユーザーについて多くを知っているのは奇妙なことです(専門用語は「階層化違反」です)。また、電子メールのTo:行に2人が含まれている場合、1人は元のユーザー用で、もう1人はExchangeユーザー用でした。混乱します。

Postfixサーバーでメールを配信したいユーザーを「グループP」、Exchangeでメールを配信したいユーザーを「グループE」と呼びましょう。

解決策は、PostfixサーバーがグループPの電子メールをローカルに配信し、グループEの電子メールをExchangeサーバーに転送することです。同様に、Exchangeサーバーは、グループEの電子メールをローカルに配信することを知っている必要があり、グループPの電子メールは転送される必要があります。

重要なのは、これら2つのサーバーがまったく同じ情報を持っていることを確認することです。そうしないと、両方のサーバーが個人のメッセージをローカルに配信するか、(さらに悪いことに)どちらも電子メールの責任があるとは見なさず、サーバー間でピンポンします。

グループEが小さい場合の解決策:

グループEが短い場合(つまり、いくつかの例外)、次のことができます。

  • Postfixで、各ユーザーのエイリアスを設定して、メールをExchangeアカウントに転送します。
  • Exchangeで、不明なユーザーのメールをPostfixサーバーに転送するようにサーバーを設定します。 (残念ながら、Exchangeがわからないため、この設定がわかりません)。

大規模サイト向けのソリューション:

大規模な構成の場合、2つのサーバー(serverE.example.comおよびserverP.example.comと呼びます)を、それぞれ[email protected]および[email protected]にローカル電子メールを配信するように構成することをお勧めしますが、 [email protected]のローカルにメールを配信しないでください。各マシンはLDAP/ActiceDirectoryデータベースにアクセスします。これは、(たとえば)[email protected]の電子メールが[email protected]に配信され、geri @ example.comの電子メールが[email protected]に配信されることを示します。 。このようにして、物事は同期を保ち、更新する場所は1つだけになります。

あまり知られていない事実:接尾辞を使用して、aliasesファイルに次のものが含まれている場合:

tom: [email protected]
geri: [email protected]

また、mail.cfのmydestinationにはserverP.example.comが含まれていますがserverE.example.comは含まれていません。その後、tomへのメールはローカルに配信され、geriへのメールはserverEに中継されます。ループは作成されません!

この問題を提起するのは、これを知る前に、メールサーバーごとにaliasesファイルを生成する大きなPerlスクリプトを作成して、(たとえば)tomaliasesserverPファイルに表示されないようにしたためです。これを知ったら、スクリプトを削除しました。まったく同じaliasesファイルがすべてのマシンに存在する可能性があります。 (もちろん、Exchangeはaliasesファイルを使用しないため、これらのサーバーで何か他のことを行う必要があります。)

myorigin = example.comの場合、送信メールのFrom:行に「[email protected]」が含まれ、2つのメールサーバーがあることを賢明な人は誰もいません。 (Exchangeに相当するものはわかりませんが、存在すると確信しています。)

テストのアドバイス

この構成をテストするときは、受信メールが適切な場所に送信されるかどうかをテストするだけではありません。また、各クライアントから送信される電子メールが適切な場所に送信されることを確認してください。たとえば、ExchangeユーザーにメッセージTo: tom, geriを送信させ、両方が配信されることを確認します。 Debianユーザーに同じことをしてもらいます。 (たとえば)エイリアスや転送が両方のマシンで正しく設定されておらず、両方のサーバーのユーザーtomに電子メールがローカルに配信されている状況を見てきました。 tomは、これが修正されるまで、両方の場所で電子メールを読む必要がありました。おっと!

4
TomOnTime

1つの方法は、Postfixにすべてのメールを受信させ、ルール/エイリアスなどに基づいてExchangeサーバーに転送することです...

1
Ryan Babchishin

Postfixに数人のユーザーしかない場合は、Exchangeでメール連絡先を作成し、postfixユーザーを内部サブドメインに配置する方がおそらく簡単です。

Exchange Online Protectionを介してメールをルーティングするなど、特に何かを達成したいですか?

ベストプラクティスは、MXレコードにサービスが1つだけあり、2番目のサービスがプライマリ(Exchangeの用語ではConnector)を介してメールを送信することを承認する必要があることです。

両方のサービスを介してSMTPを送信できますifメールドメインに代わって送信するように両方のサービスのSPFを構成します。

0
blaughw

これらの他のユーザーが言ったように、これはSMTP名前空間共有として知られているものです。あなたはPostfixシステムのユーザーのカップルに言及します。すべての電子メールをExchangeサーバーに送信してから、不明なユーザーの電子メールをPostfixシステムに渡します。デフォルトのSMTPプロパティの下を見てください。 「未解決の受信者がいるすべてのメールをホストに転送する」という内容を探す必要があります。

0
FACTORY909