如何清理 Badmail 目录?

如何清理 Badmail 目录?

我继承了该服务器,所以我还不完全熟悉它的设置。

但是,我注意到该C:\inetpub\mailroot\Badmail\目录包含约 400,000 个文件。目前,我不想删除所有内容,只想删除可能早于的文件1/1/2012。我尝试使用坏邮件管理员脚本,但是当我在该目录上运行它时,它会出错:

ERROR: C:\inetpub\mailroot\Badmail\: bytes total.
Err.Number: 6
Err.Description: Overflow
Err.Source: Microsoft VBScript runtime error

可能是因为里面有太多文件。我尝试使用普通的 Windows 资源管理器。获取目录列表需要大约 5 分钟,但当我选择要删除的一堆文件时,它开始占用一个核心 100% 的 CPU,并且在我等待的 2 小时内没有恢复。

有什么方法可以(快速)删除其中一些文件?

请注意,这不是 Exchange 服务器,只是常规的 IIS/smtp。

答案1

我尝试使用del /q *.*并 rd,但没有结果。几天来,这些命令只是在准备删除……没有人知道进展如何……

我决定编写一个脚本,这样坏文件就会被逐个删除。至少用这个脚本你可以看到文件被删除了。一开始它们删除得很慢,但随后删除速度就会加快。

脚本非常简单:

for %i in (c:\inetpub\mailroot\badmail\\*.*) do del /q %i

如果您使用批处理文件,请再添加%一个%i (%%i)

祝你好运!

答案2

  1. 这些文件是无法发送的电子邮件,所以把它们全部删除吧。我认为保留文件夹中的任何文件都没有任何意义或价值。

  2. 尝试从命令行删除它们。

答案3

我们不需要无法送达的电子邮件的副本,因此我们将死信文件夹重定向到 /dev/null 以防止它们被保存。

步骤 1. 创建到 /dev/null 的符号链接. 从管理命令提示符:

mklink /D c:\DevNull NUL:

第 2 步. 将 SMTP 服务器的 Badmail 目录更改为C:\DevNull

就这样,不再有坏信文件了!

答案4

带有 IIS/SMTP 的 Windows Server 2008 R2 上的 BadMailAdmin 脚本版本 1.0(发布于 2004-09-21)。


在我的例子中,BadMail 目录太大,无法使用脚本中使用的默认变量数据类型(“Long”)。我不得不将其更改为“Single”(请参阅VB 错误参考有关此问题的更详细说明,以及VB 数据类型对于变量数据类型)。

请尝试以下操作:

  • 在文本编辑器中打开 BadMailAdmin.wsf 脚本
  • 转至 745 行
  • 更改“cFolderMBSize = CLng(oFolder.Size)“ 到 ”cFolderMBSize = CSng(oFolder.Size)
  • 如果您希望保留原始脚本,请使用其他名称保存该脚本
  • 运行修改后的脚本

我用这个来将尺寸缩小到足够小,以便原始脚本(具有长变量数据类型)可以用于持续维护。

相关内容