
私はexim4をISPメールサーバの前にスマートホストとして設定しようとしています。無効な送信者(おそらくスパム)からのメールを除いて、すべて正常に動作します。ISPはそれらを拒否します。
450 4.1.8 <[email protected]>: Sender address rejected: Domain not found
これにより、exim スマートホストが再試行し、キューのサイズが不必要に増加します。
私がこれを設定するのに最も近かったのは/etc/exim4/local_sender_callout
ファイルを使うことでした。しかし、その場合、呼び出しはISPに送られ、ISPはそれを拒否します。
554 5.7.1 <[email protected]>: Relay access denied
(有効なアドレスであっても、どのアドレスでも)/etc/exim4/passwd.client
この場合、設定は機能しないようです...
exim スマートホストで送信者検証 (コールアウトあり、またはコールアウトなしが望ましい) を設定するにはどうすればよいですか?
説明: 私の exim はオープン リレーではなく、メールを受け入れるドメインの制限されたリストのみを既に指定しています。それらのメールはスマートホストに送信され、実際のメールボックスに配信されます。セットアップの図はおそらく次のようになります。
Internet -> my exim(mx) -> ISP(smarthost) <- users accessing email via POP/IMAP
私のドメインの MX レコードは、私の Exim サーバーを指しています。ただし、ISP は私のドメインの電子メールを受け入れ、メールボックスに保存します。
答え1
実際には、最終目的地に向かってより制限の厳しいフィルター セットを備えたフロントエンド MX を設定することになります。これに対処する最善の方法は、少なくともフロントエンドで同じ制限を課すことです。
ただし、スマートホストがあるため、「任意のドメイン」宛てのメールはスマートホストに送信されます。これはドメインの有効性チェックとうまく組み合わせられません。RCPT コマンド用に定義された ACL のどこかに、require verify = sender
Exim がメッセージを受け入れる前に送信元ドメインにメールを送信する方法があることを保証する が必要です。
常時接続の場合、スマートホスト ルーターの直前に追加のルーターを配置することをお勧めします。スマートホストに と があると仮定するとdomains = ! +local_domains
、no_more
スマートno_verify
ホスト ルーターに を追加し、その前に次のルーターを挿入します。
remote_dns_verify:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
# ignore_target_hosts = +some_hostlist_matching_rfc1918_and_so_on
same_domain_copy_routing
verify_only
no_more
これにより、検証パスはスマートホストを使用しないため、「すべてのルート」はなくなります。検証では DNS を持つリモート ドメインのみをルーティングできるため、ISP がルーティングできないために拒否している電子メールは受け入れられなくなります。
その後、ISPが拒否したメールの再試行を停止するために、特定のリモートエラーに一致する再試行ルールを設定することを検討します。http://www.exim.org/exim-html-current/doc/html/spec_html/ch-retry_configuration.html多くのための。