1 最后由 sdaniel (2011-04-11 22:52:21) 编辑

主题: 利用dovecot进行更新quota信息失败

您好!

我利用以下的链接设置更新quota信息:
http://www.iredmail.org/wiki/index.php? … a.In.MySQL

重启服务后出现以下失败日志,请帮助分析一下问题大概出在什么地方:
环境:从dovecot-1.1.xx升级到现在的1.2.16,能正常收邮件,自动假期回复等;
          数据库使用的是mysql,我将quota信息更新在vmail.mailbox的bytes和messages中。

重启dovecot和postfix后出现:
Apr 11 22:30:12 deliver(mailaddress): Error: dict quota: Quota update failed, it's now desynced
Apr 11 22:30:12 deliver(mailaddress): Info: sieve: msgid=<4c703f83.f624.12f44f7b800.Coremail.mail@163.com>: stored mail into mailbox 'INBOX'
Apr 11 22:31:57 deliver(mailaddress): Error: read(/var/run/dovecot/dict-server) failed: Remote disconnected
Apr 11 22:31:57 deliver(mailaddress): Error: Internal quota calculation error
Apr 11 22:31:57 deliver(mailaddress): Info: msgid=<20110411125958.13A43519F0@list.cn99.com>: save failed to INBOX: Internal error occurred. Refer to server log for more information. [2011-04-11 22:31:57]
Apr 11 22:31:57 deliver(mailaddress): Error: Internal quota calculation error
Apr 11 22:31:57 deliver(mailaddress): Info: msgid=<20110411125958.13A43519F0@list.cn99.com>: save failed to INBOX: Internal error occurred. Refer to server log for more information. [2011-04-11 22:31:57]
Apr 11 22:31:57 deliver(mailaddress): Error: read(/var/run/dovecot/dict-server) failed: Remote disconnected
Apr 11 22:31:57 deliver(mailaddress): Error: Internal quota calculation error

注释掉新增的内容:
quota = dict:user::proxy::quotadict 
quotadict = mysql:/etc/dovecot-used-quota.conf

错误消失!

回复: 利用dovecot进行更新quota信息失败

打开 dovecot 调试模式,检查 /var/log/dovecot.log 和 /var/log/sieve.log 里的相关日志,看是否有更多信息可供参考。

回复: 利用dovecot进行更新quota信息失败

打开调试模式,调整配置后出现以下错误:
Apr 12 09:24:24 deliver(mailaddress): Error: dict quota: Quota update failed, it's now desynced
Apr 12 09:24:24 deliver(mailaddress): Info: msgid=<C106281815094D52AE432C733FC48E99@D230>: saved mail to INBOX

回复: 利用dovecot进行更新quota信息失败

贴的这个应该是 /var/lig/sieve.log 里的日志吧?/var/log/dovecot.log 里是否有相关信息?

5 最后由 sdaniel (2011-04-12 09:41:31) 编辑

回复: 利用dovecot进行更新quota信息失败

找到问题了!!

我在建立dovecot-used-quota.conf是从/etc/postfix/中的mysql配置中复制的用户名和密码,该用户不能更新mysql.vmail.mailbox表,只能查询,我更用其他的用户,就可以更新记录了:)

另有一小问题:bytes中的单位是什么,是指的是新邮件的大小吗?messages是新邮件的数量吗,还是所有的邮件数量?

感谢回复!!

回复: 利用dovecot进行更新quota信息失败

sdaniel 写道:

另有一小问题:bytes中的单位是什么,是指的是新邮件的大小吗?messages是新邮件的数量吗,还是所有的邮件数量?

bytes 字段存储的是用户邮箱里所有邮件的总大小,单位就是 byte。
messages 则是用户邮箱里所有邮件的总数。例如100则表示有100封邮件。

感谢提醒,我已经在你的第一个帖子里提到的 wiki 里加入了这个备注。

Note: Column "bytes" stores size of all mails in user's mailbox, column "messages" stores number of all mails in user's mailbox.

回复: 利用dovecot进行更新quota信息失败

感谢!