Postfix-キュー内のメールの配信を再試行する方法は?


95

メインサーバーに障害が発生した場合のバックアップメールサーバーがあります。障害が発生した場合、メールはバックアップサーバーに到着し、メインサーバーが戻るまでそこに留まります。

しばらく待つと、メインサーバーが復帰するとすぐに配信が自動的に行われますが、時間がかかる場合があります。それでは、すべてのメールの送信再試行を強制する方法は?

例:postqueue -p:メールのリストを教えてください

次に、postqueue -fを試しました(manページから:キューをフラッシュします:キューに入っているすべてのメールを配信しようとします)。キューは確実にフラッシュされましたが、メールは配信されませんでした...


-fはフラッシュ、-qはキュー(キューを送信)
-erm3nda

1
ありませんpostqueue -qsendmail -qsendmail構文をサポートする必要があるため、postfixはsendmailを完全に置き換えることができますが、これは同義語です。postfixがsendmailとは異なる文字を選択したため、異なる文字はjsutです。
ヨハネスH.

申し訳ありませんが、同じ日にコメントしてください:)ので、両方が間違っています。
erm3nda

回答:


113

postqueue(1)によると、単にpostqueue -fメールキューをフラッシュするために実行できます。キューをフラッシュした後にメールが配信されず、代わりにキューに再送信される場合は、メールログでエラーを確認することをお勧めします。

postsuper(1)を覗いてみると役立つかもしれません。メッセージが保留されており、最初にリリースする必要がある場合があります。


36

postqueue -f動作するはずです。そうでない場合、それには十分な理由があります。ログを確認してください。また、pfqueueはメールスプールを検査するための非常に便利なコマンドです。


16

sendmail -q キュー内のすべてのメールの配信をすぐに再試行します。


これはpostqueue -fを実行するのと同じではありませんか?
ダリボルFilus

2
@NoICEです。ドキュメントから:-qすべてのキューに入れられたメールを配信しようとします。これは、postqueue(1)コマンドを実行することにより実装されます。
the-wabbit

私はそれをチェックしませんでしたが、-fはフラッシュし、-qはキューです。1つは送信を試行し、もう1つはキューを消去するだけです。納品してみたほうがいいと思います。
erm3nda

1
@ erm3nda少なくとも最初にmanページを確認してください。postqueueマニュアルページから:「-fキューをフラッシュ:すべてのキューに入れられたメールの配信を試みます。このオプションは、Postfix qmgr(8)デーモンに連絡することにより、従来の「sendmail -q」コマンドを実装します。」=>それらは同義語であり、まったく同じことを行います。"
ヨハネスH.

ヨッシー ああ...ごめん、あなたは私がそれを読むべきだということについて正しいです。訂正していただきありがとうございます。
erm3nda

4

postqueue -s domain.tldバックアップリレーマシンがサイトのすべての電子メールをフラッシュする必要があります。postfixのデフォルト設定では、のすべてのドメインでサイトごとのフラッシュが有効になりますrelay_domainspostqueue -fこれも行いますが、外部サイトへのメールもプッシュします。つまり、必要以上のことを行います。

メールが配信されなかったことをどのように判断しますか?それらはまだバックアップホスト上にありますか、それともメインホストに送信されてから失われましたか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.