[Dovecot] dovecot-lda - dovecot: quota-warning: Error: lda: Fatal: Unknown argument
Ben Johnson
ben at indietorrent.org
Mon Jun 24 20:27:04 EEST 2013
On 6/24/2013 11:59 AM, Ben Johnson wrote:
> Hi, everyone,
>
> I'm attempting to configure automated quota warnings for users and have
> hit a snag.
>
> The script I'm using is as follows:
>
>
> ---------------------------------------------------------------------
> #!/bin/sh
> PERCENT=$1
> MAILBOX=$2
> DOMAIN=$3
> cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o
> "plugin/quota=dict:user::file:/var/vmail/%d/%n/.quotausage"
> From: postmaster@$DOMAIN
> Subject: Email quota warning - mailbox over $PERCENT% full
> [...]
> ---------------------------------------------------------------------
>
> When the script is triggered, here's what appears in the log:
>
> ---------------------------------------------------------------------
> Jun 24 11:16:53 host dovecot: quota-warning: Error: lda: Fatal: Unknown
> argument:
> plugin/quota=dict:user::noenforcing:file:/var/vmail/%d/%n/.quotausage
> Jun 24 11:16:53 host dovecot: master: Error: service(quota-warning):
> child 22415 returned error 64
> ---------------------------------------------------------------------
>
> If I paste the same on the command line, the message is delivered, as
> expected:
>
> /usr/lib/dovecot/dovecot-lda -d user at example.com -o
> "plugin/quota=dict:user::noenforcing:file:/var/vmail/%d/%n/.quotausage"
> -p /tmp/test.txt
>
> The problem seems to be that the -o switch isn't being interpreted
> correctly when dovecot-lda is called from within the script. -o is the
> correct switch, yes? From the manual at http://wiki2.dovecot.org/LDA :
>
> -o name=value: Override a setting from dovecot.conf. You can give this
> parameter multiple times.
>
> What am I missing here? Is some shell script escaping or similar required?
>
> Thanks for any tips!
>
> -Ben
>
I figured it out; I had copy/pasted part of the line
cat << EOF | /usr/lib/dovecot/dovecot-lda -d $USER -o \
"plugin/quota=dict:user::file:/var/vmail/%d/%n/.quotausage"
from the documentation example and in so doing I neglected to use the
correct variable name for the user/mailbox. In the documentation
example, the variable is $USER, whereas I had named it $MAILBOX. This
was causing the mailbox/user to be evaluated as an empty string (or null).
Everything works as expected using the correct variable name.
Oops!
-Ben
More information about the dovecot
mailing list