web-dev-qa-db-ja.com

Postfix-ローカルで生成されたメールを中継しますが、同じドメインのGAppから着信するメールを受け入れます

すべてのローカル配信を無効にする方法は、ドメインを「mydestination」から削除することです。これにより、設定したリレーを介してすべてのメールがリレーされます。しかし、postfixがGAppsからのすべてのメールを受け入れてdovecotにローカル配信し、ローカルで生成されたすべてのメールをGAppsに中継するようにしたいのです。

例:ローカルの接尾辞を使用して、サーバー上でWebメールを実行しています。 [email protected][email protected]にメールを送信します。 user2がローカルに存在する場合、postfixはローカルに配信しますが、存在しません-そのメールをGAppsに送信するフォールバックリレーを追加できます。しかし、ローカルの可用性に関係なく、postfixがこれらのメールを常にGAppsに中継するようにしたい(ローカル配信のためにこれらのメールをダウンストリームでpostfixに送り返す)。ある種のウォーターフォールモデルを持つことができるように。

これに関連する質問がたくさんあることは知っていますが(具体的には答えはありません)、基本的に私が欲しいのは、Gmailとローカルダブコットの両方で同じユーザー用の同じ受信トレイを用意することです。ウェブメールにローカルではなくGAppsSMTPリレーを直接使用することで一時的な修正を見つけましたが、IMAPに接続しているユーザーには何も解決されません(各ユーザーにGApps SMTPへのアクセスを許可する必要があります)。

1
smallet

最後に、postfixの複数のインスタンスで動作するようにセットアップを取得しました masegaloeh 言及しました。 exim4を使おうとしましたが、apt-get install exim4は、プロンプトを表示せずに、postfixを自動的にアンインストールしました。とにかく、これが私がそれを機能させる方法です:

#Adds some lines to main.cf enabling multiple instance
postmulti -e init

#Creates a new instance at the directory /etc/postfix-outgoing
postmulti -I postfix-outgoing -G mta -e create

私のユースケースでは、ポート25ポート465Gmailからの受信メールの受信に使用されますが、postfixsubmission(ポート587で実行)発信MTAの使用。だから私は/etc/postfix/master.cfでこのようにコメントしました

#submission inet n       -       -       -       -       smtpd

コメントsmtpsmtpsが追加されました/etc/postfix-outgoing/master.cfのsubmission、このようなものを取得するには

submission inet n       -       -       -       -       smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no

デフォルトのISPConfigのmain.cfを/etc/postfixからコピーし、/etc/postfix-outgoing/main.cfに多くの変更を加えましたが、主なものは次のとおりです。

  1. myhostnameをメインインスタンスとは異なるように変更しました。 (そうでない場合、接尾辞はそれらの間で混乱します)
  2. すべてのdovecot固有の構成を削除しました。
  3. データディレクトリを変更します。
  4. Postfixがローカル配信を試行しないことを確認してください。 (mydestination、virtual_domainsなどを介して)。
  5. relayhostを入力します。
  6. 元のパスへの直接参照が機能しなかったため、service authを指すdovecot.conf/var/spool/postfix-outgoing/private/authに2番目のリスナーを追加します。または、-- TCP を介したDovecot認証を使用してみてください。

最後に、インスタンスを有効にします。

postmulti -i postfix-outgoing -x postconf -e \
  "master_service_disable ="
postmulti -i postfix-outgoing -e enable
postmulti -i postfix-outgoing -p start

tail -f /var/log/mail.logそしてどこがうまくいかなかったかを見てください。

参照: http://www.postfix.org/MULTI_INSTANCE_README.html

2
smallet