web-dev-qa-db-ja.com

1日あたりの特定の期間にのみqmailをデキューします

私はqmailを使用して、多くの人に代わって多数のメールを送信しています。これは、ジョブごとに40万から60万の電子メールの間で異なります。

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

時間の長さは問題ではありませんが、メールが奇数時間(深夜や日の出など)に送信されるのは好きではありません。

特定の時間範囲内でのみメッセージをデキューするようにqmailに指示する方法はありますか?

たとえば、午前6時から午後8時の間だけキューを空にし、午後8時から翌日の午前6時まで「スリープ」させて、キューを終了するように指示します。

CentOS 6.6 Finalの使用

1
chiliNUT

コマンド qmailctl pauseはqmailを一時停止し、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はqmailが送信されないようにする必要があり、次にsvc -c /etc/service/qmail-send通常に戻ります。 cronジョブを使用して、選択したときにこれらのアクションを実行できます。

2
dhag