主题: 用户资料表vmail.mailbox中的某些栏位的值会突然变成空的.

安装0.7.3版
系统的CentOS6.0
免存放于mysql的
问题:
不知道为何原因,用户资料表vmail.mailbox中的某些栏位的值会突然变成空的
目前记得的密码名storagebasedirectory storagenode MAILDIR配额等栏位都会变成空的值
有时候一两位,有时候一位,时间不一定,也不会是同一个帐号
不知道是否也有人如此呢?

回复: 用户资料表vmail.mailbox中的某些栏位的值会突然变成空的.

初步判断是这些用户的邮件发生了变化,导致 Dovecot 需要重新统计它们的邮箱使用情况。但 Dovecot 默认的方式是,先删除保存这个用户邮箱使用情况的 SQL 记录,再插入重新统计后得到的值。也就是:

- 删除 vmail.mailbox 里的记录。
- 重新插入新记录,包含三个字段:username, bytes, messages。

该问题的根源在于,Dovecot 默认认为服务器是将用户邮箱容量情况记录在单独的 SQL 表里,而 iRedMail 的 MySQL 版本不是使用单独 SQL 表(OpenLDAP 使用单独的 SQL 表,因此不存在此问题),因此导致这样的问题发生。Dovecot 官方文档没有指明必须用独立的 SQL 表,而 iRedMail 目前的表结构设计在很长一段时间里都没有碰到这样的情况,最近才暴露出来。

在英文论坛有一位网友在迁移旧服务器时碰到类似情况,目前已经通过改进 iRedMail 完美解决。如果能够确定您是和他/她一样的情况引起的,那就可以马上修正它。修正步骤已经详细记录在这里:

- Store realtime mailbox quota usage in seperate SQL table
  http://iredmail.org/wiki/index.php?titl … _SQL_table

注意:请只应用 "Store mailbox quota in seperate SQL table" 这一部分的修正,不要应用其它内容。因为该升级文档还处于草稿状态,可能随时会有补充或修正。但 "Store mailbox quota in seperate SQL table" 这一节则不需要再改动了。