[Dovecot] Quota, message is never send?

Gedalya gedalya at gedalya.net
Sat May 12 20:48:48 EEST 2012


On 5/12/2012 1:34 PM, Luuk at dovecot wrote:
> On 12-05-2012 18:40, Gedalya wrote:
>> On 5/12/2012 12:21 PM, Luuk at dovecot wrote:
>>> On 12-05-2012 18:00, Gedalya wrote:
>>>> On 5/12/2012 11:42 AM, Luuk at dovecot wrote:
>>>>> In the log, the following message showed:
>>>>> 2012-05-12 17:11:43 imap(luuk): Error: quota:
>>>>> net_connect_unix(/var/run/dovecot/quota-warning.sh) failed: No such
>>>>> file
>>>>> or directory
>>>>>
>>>>> I think i have to revert the changes, and retest.....;)
>>>> Wiki says: quota_warning =<limit configuration>   <quota-warning socket
>>>> name>   <parameters>
>>>>
>>>>
>>>> You define a listening socket in the unix_listener line in the service
>>>> definition, and refer to that socket in your quota_warning plugin
>>>> configuration.
>>>>
>>>> Duane wasn't saying to delete the path, he said to use the socket name.
>>>> So, just quota-warning without the .sh
>>>>
>>>> plugin {
>>>>     quota_warning = storage=95%% quota-warning 95 %u
>>>>     quota_warning2 = storage=90%% quota-warning 90 %u
>>>>     quota_warning3 = storage=10%% quota-warning 10 %u
>>>> }
>>>>
>>>> service quota-warning {
>>>>     executable = script /usr/local/bin/quota-warning.sh
>>>>     unix_listener quota-warning {
>>>>       user = dovecot
>>>>     }
>>>>     user = dovecot
>>>> }
>>>>
>>>>
>>> ok, after this error, i must have seen them all:
>>> 2012-05-12 18:08:31 imap(luuk): Error: quota:
>>> net_connect_unix(/var/run/dovecot/quota-warning) failed: Permission
>>> denied (euid=1000(luuk) egid=100(users) missing +r perm:
>>> /var/run/dovecot/quota-warning, dir owned by 0:0 mode=0755)
>>>
>>> opensuse:/var/run/dovecot # ls -l /var/run/dovecot/quota-warning
>>> srw------- 1 dovecot root 0 May 12 18:18 /var/run/dovecot/quota-warning
>>> opensuse:/var/run/dovecot #
>>>
>>> Changing the permissions using chmod +rw /var/run/dovecot/quota-warning
>>> is reset when dovecot is restarted.....
>>>
>> You should probably add mode = 0666 like so:
>>
>> service quota-warning {
>>    executable = script /usr/local/bin/quota-warning.sh
>>    unix_listener quota-warning {
>>      user = dovecot
>>      mode = 0666
>>    }
>>    user = dovecot
>> }
>>
>> Indeed you can't use chmod from the command line because these sockets
>> are created by dovecot when it starts up.
>>
> ok, it seems to work now ;)
>
> but my quota-usage is dropping harder that it should
>
> i started at 71%,
> received a file, it went to 74%
> deleted the message in Inbox
> deleted the message from Sent
> and not the quota is at 68%.....
>
> Recovery is possible with:
> doveadm quota recalc -u

I understand you sent an email to yourself?
If you gained one $message_size upon reception and lost 2*$message_size 
upon deletion from Inbox+Sent, I would suspect quota plugin isn't active 
when the message is being delivered. How are messages delivered? Dovecot 
LDA, LMTP or an external MTA?
You really should use LDA or LMTP to handle quota accounting.



More information about the dovecot mailing list