珍しいメール設定があります-Google Apps/Gmailが前にあり、Eximがウェブサーバーで実行されています。 Google Appsに存在しないアカウントのメールは、Eximに転送されます。これらは両方とも同じドメインを使用します。
問題は、Eximアカウント(またはPHPアプリ)から送信されるすべてのメールはローカルでのみ配信され、Gmail経由では送信されないことです。
おそらくそれをよりよく説明するために、この高品質のチャートを参照してください。
[Google Apps] (Tom, Dick, Harry)
|
v
[Exim] (Jane, Mary, Sue)
Janeに送信されたメールは、GoogleによってEximに転送されます。トムに送信されたメールは、単にGoogleによって配信されます。これが機能する部分です-問題はジェーンはトムにメールを送信できない Eximに関する限り、ショー全体を実行するためです。
EximでSmartHostを設定する方法について読んでいますが、認証が必要です。重要なことに、EximのアカウントはAppsのアカウントと一致しません。
外部ルートを介してローカルメールを配信するようにEximを構成するにはどうすればよいですか?
質問のコメントで参照した回答( 別のメールサーバーにルーティングできないメールを転送するようにサーバーを構成する )に基づいて、ローカル部分だけでなく、メールアドレス全体を使用するようにロジック部分を書き直しました。以下は私のテストで機能するようです。
1)置く example.com + local_domains内。
2)彼が推奨したルーターを追加します。 (これに続いて、有効なローカルメールボックスを持つ+ local_domainsおよびユーザーを受け入れる別のルーターが必要です):
not_local:
driver = manualroute
domains = +local_domains
transport = remote_smtp
condition = ${lookup{$local_part@$domain}lsearch{/etc/exim/forward_to_google}}
# Use whatever MX is correct for your domain below
route_list = +local_domains s7a1.psmtp.com
3)作成/etc/exim/forward_to_google
を入れてください:
[email protected]: yes
# Not required if this is a local account, but
# shows how flexible this approach can be
[email protected]: no
4)eximの-btアドレステストオプションを使用してテストできます(私の構成には有効なローカルユーザー用の2番目のルーターがありませんが、最初のユーザーがローカル配信を表示するようにする必要があります):
$ exim -bt [email protected]
[email protected] is undeliverable: Unrouteable address
$ exim -bt [email protected]
[email protected]
router = not_local, transport = remote_smtp
Host s7a1.psmtp.com [64.18.6.10]