我组织中的用户使用 Outlook 2010 电子邮件客户端,并通过 pop3 访问 ZCS/OSE。这些客户端使用默认的“ 14 天后从服务器删除消息”设置所有消息框设置如下:
- 每个邮箱存储不超过 450 Mb
- 普通邮件的 TTL 为 60 天,垃圾邮件的 TTL 为 30 天。
清除活动按预期工作。但是...从管理 GUI 手动重新索引邮箱显示有 5000 多条(超过五千条)要索引的消息,但项目总数(邮件+日历+...)约为 300(三百或更少) .
此外,对 /opt/zimbra/storage 子目录的检查表明,其中存储的一些 .msg 文件来自 2009 年!
有些邮箱看起来已满,即使任何邮箱文件夹中都没有任何邮件。只是因为帐户的子目录充满了旧的,很久以前删除的消息。
任何人都可以解释一下,是否有可能真正清除过时的消息文件?使用 mtime 参数查找它们并删除看起来不是一个好主意。不幸的是,我这样做了。但是 zimbra 在其 LDAP 服务器中存储了一些东西,并且强制“杀死”的消息仍然可见,即使由于“BLOB 丢失”错误而无法打开它们。
有没有办法清理 ZCS 的 LDAP 目录?
Zimbra 不在 LDAP 上存储消息元数据。相反,zimbra 使用 MySQL 来存储它。Zimbra wiki 的片段:帐户邮箱数据库结构
这里的第一个任务是修复 Zimbra blob 和 MySQL 元数据之间的不一致。您可以使用名为
zmblobchk
. 此命令检查 Zimbra blob 存储 (/opt/zimbra/store
) 的一致性。此命令检查并记录不匹配数据库元数据的文件注释。它还检查以确保文件的大小信息是正确的。第二个任务是找出为什么如果 Outlook 告诉 zimbra 删除它,该消息仍然存在。您可以尝试检查 zimbra 日志,可能某些 Zimbra 工作人员出现错误,因此自动删除过程失败。
方便的迷你脚本检查和重新索引,归功于 OP