我组织中的用户使用Outlook 2010电子邮件客户端,并使用pop3访问ZCS / OSE。 这些客户端使用默认的“ 14天后从服务器删除邮件 ”设置所有消息框的设置如下:
清除活动的工作原理如此。 但是…手动重新编制从pipe理GUI的邮箱显示,有超过5000(超过五千)消息索引,但总数(邮件+日历+ …)约300(三百或更less一点) 。
更多的是,/ opt / zimbra / storage subdirs的检查logging了一些存储在这里的.msg文件从2009年开始!
而且有些邮箱看起来已经满了,即使邮箱文件夹中没有任何邮件。 只是因为账号的子目录里充满了旧的,被很久以前的邮件删除了。
任何人都可以解释一下,如果真的能够清除过时的消息文件吗? find他们与mtime参数和删除看起来不是很好的主意。 不幸的是我做到了。 但是zimbra在LDAP服务器中存储了一些东西,强制“杀死”消息仍然可见,即使由于“BLOB缺失”错误而无法打开。
有没有什么办法来消毒ZCS的LDAP目录?
Zimbra不在LDAP上存储消息元数据。 相反,zimbra使用MySQL来存储它。 来自Zimbra Wiki的片段: 帐户邮箱数据库结构
Zimbra使用mysql数据库来存储邮件标题信息(收件人,发件人,主题,date,阅读/未读状态,标志,标签),联系人,日历项目和任务。 创build账户时,Zimbra自动将zimbra账户分配给邮箱组。 邮箱组对应于位于/ opt / zimbra / db / data中的数据库,例如mboxgroup1,mboxgroup2等等。 每个邮箱服务器最多有100个邮箱组。
这里的第一个任务是修复Zimbra blob和MySQL元数据之间的不一致。 您可以使用称为zmblobchk zimbra帮助zmblobchk 。 该命令检查Zimbra blob存储( /opt/zimbra/store )的一致性。 此命令检查并logging文件的注释,而不匹配数据库元数据。 它还检查以确保文件的大小信息是正确的。
第二个任务是找出为什么消息仍然存在,如果前景告诉zimbra删除它。 您可以尝试检查zimbra日志,也许某些Zimbra工作人员有一个错误,所以自动删除过程失败。
方便的小脚本来检查和重新索引,贷给OP
mbox=USERNAME;aa=`zmprov gmi $mbox|grep mailbox|sed -e "s/mailboxId\:\ //"`; zmblobchk -m $aa --export-dir /tmp/zmblb/ --missing-blob-delete-item start; zmprov rim $mbox start; zmprov rim $mbox status