毎日特定の期間にのみキューメールをキューから引き出すようにしてください

毎日特定の期間にのみキューメールをキューから引き出すようにしてください

私は多くの人に代わって大量の電子メールを送信するためにキューメールを使用しています。ジョブあたりのメール数は400,000〜600,000です。

スクリプトはphpすべてのメッセージをキューに追加するのに数時間かかります。その後、メッセージがキューから削除され送信されるまでに約24〜48時間かかります。

時間は問題ではありませんが、奇妙な時間(夜間や日の出時間など)に電子メールを送信するのは好きではありません。

キューメールが特定の時間範囲内でのみメールをキューから引き出すように指示する方法はありますか?

たとえば、午前6時から午後8時の間にのみキューを消去し、午後8時以降は「スリープ」のままにし、翌日午前6時までキューを終了しないように指示します。

CentOS 6.6 Finalの使用

答え1

このコマンドはqmailctl pauseキューメールを一時停止してから一時qmailctl cont停止を解除します。

これが多すぎる場合は、ソースコードを見てみると、次のようなことがわかります。

pause)
  echo "Pausing qmail-send"
  svc -p /service/qmail-send
  echo "Pausing qmail-smtpd"
  svc -p /service/qmail-smtpd
  ;;

これによりsvc -p /service/qmail-sendキューメールの送信が停止し、svc -c /etc/service/qmail-send正常に戻ります。 cronタスクを使用して、必要な時間にこれらのタスクを実行できます。

関連情報