使 qmail 仅在每天的特定时间段内出队

使 qmail 仅在每天的特定时间段内出队

我正在使用 qmail 代表许多人发送大量电子邮件。每个作业的电子邮件数量在 40 万到 60 万封之间。

脚本php将所有消息排队,这需要几个小时。然后,消息大约需要 24-48 小时才能出队并发送。

时间长度不是问题,但我不喜欢在奇怪的时间发送电子邮件(例如在半夜或日出时)。

有没有办法告诉 qmail 仅在特定时间范围内使邮件出队?

例如,告诉它只在早上 6 点到晚上 8 点之间清空队列,然后让它在晚上 8 点之后“休眠”,直到第二天早上 6 点才能完成队列。

使用 CentOS 6.6 Final

答案1

该命令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 作业在您选择的时间执行这些操作。

相关内容