回复: 关于 dovecot 的expire plugins

原帖由 sxqw 于 2008-10-28 17:41 发表 http://www.iredmail.org/bbs/images/common/back.gif
过滤部分还要测试

能否贴一段 deliver 过程的debug日志,看看与我的有什么不同

谢谢


什么情况下的 debug?
在 Dovecot-1.1.5 里大幅度改进了对 error log 的提示信息,所以 1.1.5 里对发生的问题应该更容易定位才对。

回复: 关于 dovecot 的expire plugins

OK.

在 dovecot.conf 中启用 'mail_debug = yes' 参数,并设置 quota_warning 如下(为了方便测试,我设置了多个 quota_warning):

plugin {
    quota_warning = storage=95%% /usr/bin/quota-warning.sh 95
    quota_warning2 = storage=80%% /usr/bin/quota-warning.sh 80
    quota_warning3 = storage=60%% /usr/bin/quota-warning.sh 60
    quota_warning4 = storage=40%% /usr/bin/quota-warning.sh 40
}

重启启动 dovecot 服务,立刻可以在屏幕上看到以下内容:

IQuota warning: bytes=9961472 (95%) messages=0 (0%) command=/usr/bin/quota-warning.sh 95
IQuota warning: bytes=8388608 (80%) messages=0 (0%) command=/usr/bin/quota-warning.sh 80
IQuota warning: bytes=6291456 (60%) messages=0 (0%) command=/usr/bin/quota-warning.sh 60
IQuota warning: bytes=4194304 (40%) messages=0 (0%) command=/usr/bin/quota-warning.sh 40

这时候往用户的邮箱里发邮件,达到任意一个之后,sieve 的投递日志里会出现类似的记录:

deliver(www@a.cn): Oct 28 19:30:49 Info: Loading modules from directory: /usr/lib64/dovecot/lda
deliver(www@a.cn): Oct 28 19:30:49 Info: Module loaded: /usr/lib64/dovecot/lda/lib10_quota_plugin.so
deliver(www@a.cn): Oct 28 19:30:49 Info: Module loaded: /usr/lib64/dovecot/lda/lib20_expire_plugin.so
deliver(www@a.cn): Oct 28 19:30:49 Info: Module loaded: /usr/lib64/dovecot/lda/lib90_cmusieve_plugin.so
deliver(www@a.cn): Oct 28 19:30:49 Info: auth input: www@a.cn
deliver(www@a.cn): Oct 28 19:30:49 Info: auth input: home=/home/vmail
deliver(www@a.cn): Oct 28 19:30:49 Info: auth input: sieve_dir=/var/www/sieve/a.cn/www/
deliver(www@a.cn): Oct 28 19:30:49 Info: auth input: quota_rule=*:bytes=10485760
deliver(www@a.cn): Oct 28 19:30:49 Info: auth input: maildir=a.cn/www/
deliver(www@a.cn): Oct 28 19:30:49 Info: Quota root: name= backend=maildir args=
deliver(www@a.cn): Oct 28 19:30:49 Info: Quota rule: root= mailbox=* bytes=10485760 (0%) messages=0 (0%)
deliver(www@a.cn): Oct 28 19:30:49 Info: Quota warning: bytes=9961472 (95%) messages=0 (0%) command=/usr/bin/quota-warning.sh 95
deliver(www@a.cn): Oct 28 19:30:49 Info: Quota warning: bytes=8388608 (80%) messages=0 (0%) command=/usr/bin/quota-warning.sh 80
deliver(www@a.cn): Oct 28 19:30:49 Info: Quota warning: bytes=6291456 (60%) messages=0 (0%) command=/usr/bin/quota-warning.sh 60
deliver(www@a.cn): Oct 28 19:30:49 Info: Quota warning: bytes=4194304 (40%) messages=0 (0%) command=/usr/bin/quota-warning.sh 40
deliver(www@a.cn): Oct 28 19:30:49 Info: maildir: data=//home/vmail/a.cn/www/:INDEX=//home/vmail/a.cn/www/
deliver(www@a.cn): Oct 28 19:30:49 Info: maildir++: root=//home/vmail/a.cn/www, index=, control=, inbox=//home/vmail/a.cn/www
deliver(www@a.cn): Oct 28 19:30:49 Info: cmusieve: /var/www/sieve/a.cn/www/.dovecot.sieve doesn't exist
deliver(www@a.cn): Oct 28 19:30:49 Info: cmusieve: Using sieve path: /home/vmail/.dovecot.sieve
deliver(www@a.cn): Oct 28 19:30:49 Info: cmusieve: Script not found: /home/vmail/.dovecot.sieve
deliver(www@a.cn): Oct 28 19:30:49 Info: msgid=: saved mail to INBOX
deliver(www@a.cn): Oct 28 19:30:49 Info: msgid=<92147a1047ac6d99f9bc0cdb5467421b@127.0.0.1>: saved mail to INBOX

在 /var/log/dovecot.log 里的日志如下:

dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Disconnected: Logged out bytes=365/1806
dovecot: Oct 28 19:31:08 Info: imap-login: Login: user=<www@a.cn>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Loading modules from directory: /usr/lib64/dovecot/imap
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Module loaded: /usr/lib64/dovecot/imap/lib10_quota_plugin.so
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Module loaded: /usr/lib64/dovecot/imap/lib11_imap_quota_plugin.so
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Module loaded: /usr/lib64/dovecot/imap/lib20_expire_plugin.so
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Module loaded: /usr/lib64/dovecot/imap/lib20_zlib_plugin.so
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Effective uid=2000, gid=2000, home=/home/vmail
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Quota root: name= backend=maildir args=
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Quota rule: root= mailbox=* bytes=10485760 (0%) messages=0 (0%)
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Quota warning: bytes=9961472 (95%) messages=0 (0%) command=/usr/bin/quota-warning.sh 95
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Quota warning: bytes=8388608 (80%) messages=0 (0%) command=/usr/bin/quota-warning.sh 80
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Quota warning: bytes=6291456 (60%) messages=0 (0%) command=/usr/bin/quota-warning.sh 60
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Quota warning: bytes=4194304 (40%) messages=0 (0%) command=/usr/bin/quota-warning.sh 40
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): maildir: data=//home/vmail/a.cn/www/:INDEX=//home/vmail/a.cn/www/
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): maildir++: root=//home/vmail/a.cn/www, index=, control=, inbox=//home/vmail/a.cn/www
dovecot: Oct 28 19:31:08 Info: IMAP(www@a.cn): Disconnected: Logged out bytes=23/104

回复: 关于 dovecot 的expire plugins

已经触发,并且发送了邮件出去了。

在上面贴的 sieve.log 的日志里,倒数第二行就是:

deliver(www@a.cn): Oct 28 19:30:49 Info: msgid=: saved mail to INBOX

msgid 为空,是因为它不经过 Postfix,直接有 deliver 程序生成。

最直接的证明就是用户已经收到 quota_warning 发送的邮件通知了。

回复: 关于 dovecot 的expire plugins

汗,昨晚为了测试 LDAP backend,重装了系统 :L

回复: 关于 dovecot 的expire plugins

你先试试用 bdb 测试以下,不用 mysql。:)

回复: 关于 dovecot 的expire plugins

:lol
生效了就好