![如何删除 sendmail 的延迟队列的内容?](https://linux22.com/image/536903/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%20sendmail%20%E7%9A%84%E5%BB%B6%E8%BF%9F%E9%98%9F%E5%88%97%E7%9A%84%E5%86%85%E5%AE%B9%EF%BC%9F.png)
我正在用我编写的脚本测试大量电子邮件(最终可能达到 100,000 封左右)。我正在生成最终将发送到我的某个帐户的电子邮件列表,并让脚本处理这些电子邮件,它运行良好,但目前我只想确保 sendmail 收到正确数量的请求,而实际上不发送任何邮件。
我已经关闭了 sendmail,当我运行脚本时,我得到了延迟队列中预期的请求数量(当我运行 mailq 时,我得到了标记为“(延迟:连接被 [127.0.0.1] 拒绝)”的正确数量的请求)。
我知道如果我正在运行 sendmail 并且想要删除实际排队的消息,我可以删除 /var/spool/mqueue 的内容(我在一台 Ubuntu 10.04 LTS 机器上)。但是,关闭 sendmail 后,mqueue 中没有任何内容,当我打开 sendmail 时,它会开始发送所有这些电子邮件,我无法像 sendmail 处理它们那样快速地从 mqueue 中删除它们。
有没有办法在关闭 sendmail 的情况下将它们从积压中删除,这样我就不会意外发送一些邮件?现在如果它们被发送出去也没什么大不了的(它们又都进入了我的邮箱),但我想用一组实际的测试数据来测试它,重要的是这些电子邮件不会被无意中发送到垃圾邮件中。
答案1
Sendmail 在处理完邮件后会将其传输到队列,因此如果 sendmail 关闭,它们就无法像您所遇到的那样按时进入 mqueue。
在转发电子邮件之前,请检查/var/spool/clientmqueue
sendmail 存储电子邮件的位置,这应该可以解决问题 ;)