NGINX を介してリモート SMTP/IMAP サーバー (Google Apps や Office 365 など、別の会社によって管理されている) をリバース プロキシすることは可能ですか? 例:
私は をホストしておりexample.com
、mailhost.com
メールをホストするために を使用しています。example.com
これを実現するために に 2 つの CNAME レコードを追加しようとしましたが、うまくいきませんでした。 [ smtp.example.com
-> smtp.mailhost.com
、など]
できれば、とmail.example.com
の両方を指す 1 つのサブドメイン ( ) を作成し、ポートを使用して 2 つを区別します。[ -> 、-> ]smtp.mailhost.com
imap.mailhost.com
mail.example.com:993
imap.mailhost.com:993
smtp.example.com:587
smtp.mailhost.com:587
これは可能ですか? 私がこれをやりたい唯一の理由は、Web サイトのユーザーがメール クライアントを簡単に設定できるようにし、メールを取得するために一見ランダムなドメインに接続するように要求する理由を尋ねられたときに混乱しないようにするためです。これにより DKIM などで問題が発生する可能性があることは理解しています。
この作業は簡単ですか、手間がかかりすぎますか、それとも不可能ですか? メール サーバーをセットアップすることはできますが、既成のソリューションを使用したいです。
答え1
私の意見では、NGINX メール プロキシ サーバー ガイドには、同様のものを動作させるために必要な非常に重要な情報が 1 つ欠けています。
Apache サーバー上の PHP スクリプトを IMAP 認証バックエンドとして使用する
認証サービスのモックがうまく機能しなかったため、機能するソリューションを見つけるのに数週間かかりました。すべての SSL 機能を無効にして、認証 PHP スクリプトを追加した後、ようやく NGINX プロキシ経由で IMAP でメールを受信できるようになりました。
SMTP にまだ存在する問題の 1 つは、NGINX が認証コマンドをサーバーに転送しないことです。https://forum.nginx.org/read.php?2,58181,58186#msg-58186。
したがって、NGINX メール プロキシを利用するには、SMTP の認証を無効にする必要があります。回避策を見つけた方は、ここに解決策を投稿してください。https://stackoverflow.com/questions/56031592/nginx-forwarding-smtp-auth-credentials-to-next-server/56583571#56583571
私が共有したいトピックに関連するリンクをいくつか紹介します。
答え2
これはかなり詳しく取り上げられていますNGINX をメール プロキシ サーバーとして構成する公式ドキュメントのガイド。
ただし、SPF、SSL、DKIM の設定をアップストリームと一致させることができないと、メールの配信に問題が発生する可能性があることに注意してください。