質問: quota-warning mismatch %u } 警告メッセージは正常に機能していますが、ユーザーが「101%」のクォータサイズに達すると、猶予クォータ構成を適用せずに、送信者への「クォータ超過」エラーメッセージを含むすべての新着メールを拒否します。デバッグモードのログで、次の情報を取得しました。jul 12 18:48:57 mail postfix/smtp[23827]: 22a7fe884: to=<user@mydomain.com>, relay=127.0.0.1[127.0.0.1]:10024, conn_use=178, delay=17, delays=0.01/16/0.01/1.7, dsn=2.0.0, status=sent (250 2.0.0 from mta(smtp:[127.0.0.1]:10025): 250 2.0.0 ok: queued as 490a8d627) jul 12 18:48:57 mail postfix/qmgr[25020]: 22a7fe884: removed jul 12 18:48:57 mail postfix/pickup[24689]: 5c653e898: uid=5000 from=<vmail@mail.mydomain.com> jul 12 18:48:57 mail postfix/cleanup[25288]: warning: connect to milter service inet:localhost:9001: cannot assign requested address jul 12 18:48:57 mail postfix/cleanup[25288]: 5c653e898: message-id=<20170712184857.5c653e898@mail.mydomain.com> jul 12 18:48:57 mail postfix/qmgr[25020]: 5c653e898: from=<vmail@mail.mydomain.com>, size=418, nrcpt=1 (queue active) jul 12 18:48:58 mail postfix/smtpd[25228]: 389e6d627: client=localhost[127.0.0.1] jul 12 18:48:58 mail postfix/cleanup[25288]: 389e6d627: message-id=<20170712184840.d489ce885@mail.mydomain.com> jul 12 18:48:58 mail postfix/qmgr[25020]: 389e6d627: from=<vmail@mail.mydomain.com>, size=877, nrcpt=1 (queue active) jul 12 18:48:58 mail dovecot: lmtp(24483): debug: quota root: name=user quota backend=maildir args= jul 12 18:48:58 mail dovecot: lmtp(24483): debug: quota rule: root=user quota mailbox=* bytes=1073741824 messages=0 jul 12 18:48:58 mail dovecot: lmtp(24483): debug: quota rule: root=user quota mailbox=trash bytes=+104857600 messages=0 jul 12 18:48:58 mail dovecot: lmtp(24483): debug: quota rule: root=user quota mailbox=sent bytes=+104857600 messages=0 jul 12 18:48:58 mail dovecot: lmtp(24483): debug: quota warning: bytes=1020054732 (95%) messages=0 reverse=no command=quota-warning 95 raw mail user jul 12 18:48:58 mail dovecot: lmtp(24483): debug: quota warning: bytes=858993459 (80%) messages=0 reverse=no command=quota-warning 80 raw mail user jul 12 18:48:58 mail dovecot: lmtp(24483): debug: quota grace: root=user quota bytes=52428800 jul 12 18:48:58 mail dovecot: lmtp(24483): debug: none: root=, index=, indexpvt=, control=, inbox=, alt= jul 12 18:48:58 mail dovecot: lmtp(24483): connect from local jul 12 18:48:58 mail dovecot: auth: debug: master in: user#011104#011user@mydomain.com#011service=lmtp jul 12 18:48:58 mail dovecot: auth-worker(15471): debug: sql(user@mydomain.com): select concat('/home/vmail/',concat(substring_index(email,'@',-1),'/',substring_index(email,'@',1))) as home, 5000 as uid, 5000 as gid, concat('*:bytes=', quota) as quota_rule from users where email='user@mydomain.com' jul 12 18:48:58 mail dovecot: auth: debug: userdb out: user#011104#011user@mydomain.com#011home=/home/vmail/mydomain.com/user#011uid=5000#011gid=5000#011quota_rule=*:bytes=102400 jul 12 18:48:58 mail dovecot: lmtp(user@mydomain.com): debug: auth input: user@mydomain.com home=/home/vmail/mydomain.com/user uid=5000 gid=5000 quota_rule=*:bytes=102400 jul 12 18:48:58 mail dovecot: lmtp(user@mydomain.com): debug: added userdb setting: plugin/quota_rule=*:bytes=102400 jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: effective uid=5000, gid=5000, home=/home/vmail/mydomain.com/user jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota root: name=user quota backend=maildir args= jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota rule: root=user quota mailbox=* bytes=102400 messages=0 jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota rule: root=user quota mailbox=trash bytes=+104857600 messages=0 jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota rule: root=user quota mailbox=sent bytes=+104857600 messages=0 jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota warning: bytes=97280 (95%) messages=0 reverse=no command=quota-warning 95 user@mydomain.com jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota warning: bytes=81920 (80%) messages=0 reverse=no command=quota-warning 80 user@mydomain.com jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota grace: root=user quota bytes=52428800 jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/home/vmail/mydomain.com/user jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: maildir++: root=/home/vmail/mydomain.com/user, index=, indexpvt=, control=, inbox=/home/vmail/mydomain.com/user, alt= jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota: quota_over_flag check: storage ret=1 value=101 limit=100 jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota: quota_over_flag check: message ret=0 value=99 limit=0 jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota: quota_over_flag=0((null)) vs currently overquota=1 jul 12 18:48:58 mail dovecot: lmtp(24483, user@mydomain.com): debug: quota: executing warning: quota-warning mismatch user@mydomain.com jul 12 18:48:58 mail dovecot: lmtp(user@mydomain.com): 4grug8fuzlmjxwaapxyzfw: msgid=<20170712184840.d489ce885@mail.mydomain.com>: save failed to inbox: quota exceeded (mailbox for user is full)
回答: ダブコットのgrace_quota期待どおりに機能しません。 クォータに関するdovecotマニュアル から: デフォルトのv2.2 +では、最後のメールがユーザーの割り当てを超える可能性があります。これは、ユーザーが最後の大きなメールの一部に失敗して小さなメールを通過するのではなく、実際にクォータを明確に超えられるようにするのに役立ちます。もちろん、最後のメールでユーザーがクォータを大幅に超えることは許可されるべきではないため、v2.2 +のデフォルトでは、この制限はユーザーのクォータ制限の10%です。 (v2.1では、これはデフォルトで無効になっています。) 言い換えれば、quota_graceメールがユーザーのクォータを超えたために(大きな)メールが拒否されたが、新しい(および小さい)メールは正常に配信される(ユーザーのクォータに収まるため)という混乱した状況を防ぎます。 quota_grace、dovecotはこの最後の大きなメールの配信を許可しますが、ユーザーが100%のクォータ使用量を超えているため、それ以降のメールをブロックします。dovecotは、探している機能を認識していません。ただし、クォータ使用量の値がシフトしたメールを送信することはできます(たとえば、ユーザーが実際にはまだ90%であるにもかかわらず、「クォータの100%を使用しました」を送信して、実際の制限に応じて)、実際の割り当ては、割り当ての使用状況を表示するメールクライアントのimapを介して送信されます。