協力している組織のメール配信を改善しようとしています(スパムなし)。通常のメールサービスのSMTPサーバーを配信用のスマートホストとして使用してきましたが、最近、送信するメールが多すぎるため、アカウントがブロックされました。
SMTPリレーサービスを調べてサインアップしましたが、これらはかなり高価です。私が直接メールを送信したくない理由は、すべてのメールが配信されることが重要であり、メールがすべての人に届いていることを確認するためにログをチェックすることに多くの時間を費やしたくないからです。
だから私は疑問に思っていました-最初に直接メールを送信しようとし、これが失敗した場合はスマートホストを介してメールを送信するようにpostfixを設定することは可能ですか?これにより、SMTPリレーを介してすべてのメールを送信するために料金を支払うことなく、すべての人にメールを送信できるようになります。
私はそれがかもしれない同じマシン上でpostfixの2つの並列インスタンスを実行し、インスタンスの「deferred」キューディレクトリが通常リンクされている(シンボリックリンクでいいと思う)を送信する場合、あなたが望むように動作すると思いますスマートホストにルーティングするように構成された2番目のインスタンスの「着信」ディレクトリ。インスタンス1は配信を試みる必要があります。失敗した場合は、遅延キューに書き込みます。このキューは、インスタンス2のqmgrによって新着メールとして扱われ、スマートホストにルーティングされます。
(インスタンス1で調整を行って、共有ディレクトリに表示されるものを再試行する方法を調整する必要がある場合があります。おそらく、あらゆる種類のロックと競合状態の問題があります。)
より良い解決策は、おそらく2つの並列インスタンスですが、共有ディレクトリはなく、インスタンス1の遅延キューをスキャンし、postsuperを使用して保留にし、インスタンス2の着信キューにコピーして、インスタンス1からパージするスクリプトです。数分ごとにcronジョブからトリガーされるか、inotifyフックからトリガーされる可能性があります。