如何删除 sendmail 的延迟队列的内容?

如何删除 sendmail 的延迟队列的内容?

我正在用我编写的脚本测试大量电子邮件(最终可能达到 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/clientmqueuesendmail 存储电子邮件的位置,这应该可以解决问题 ;)

相关内容