[Dovecot] cmusieve auto-reply and quota

Mauro Faccenda faccenda at gmail.com
Thu Mar 25 19:12:49 EET 2010


Hi there,

I'm quite new to Dovecot, but already can tell that it is a really
great work, congrats to the developers!

But I'm having a little problem and couldn't figure it out how to solve.

First, let me talk about my setup:

I'm running Debian 5 (Lenny) with it's default Dovecot (common, pop3
and imap) packages (version 1:1.0.15-2.3+lenny1), I really would like
to keep it this way unless I haven't another option.

All authentication is made through a MS Active Directory and messages
delivered to a virtual mailbox (/var/vmail/<domain>/<mailbox>), using
Postfix as SMTP, that uses procmail (just for filtering the messages,
not to deliver) that calls Dovecot's deliver like this:

--
:0 w
| $DELIVER -d $RECIPIENT -e
--

$DELIVER points to /usr/lib/dovecot/deliver
and

$RECIPIENT is fed by Postfix in it's master.cf

All this work great.

Then I needed to enable quotas it's working as well.

Here is the section that show how I've set it up:

--
protocol lda {
  mail_plugin_dir = /usr/lib/dovecot/modules/lda
  mail_plugins = cmusieve quota

  postmaster_address = postmaster at do.ma.in
  hostname = mybox.do.ma.in
  auth_socket_path = /var/run/dovecot/auth-master
  quota_full_tempfail = no
}
--

I also want to run some sieve scripts just to be able to do some
auto-replies (i.e. Out of office), and also it works well.

Here is an example of a sieve I was using in some tests:

--
require ["fileinto", "vacation"];

if header :contains "X-DSPAM-Result" "Spam" {
  stop;
}

vacation
  :days 1
  :subject "Out of office reply"
  :addresses ["john.doe at do.ma.in", "jd at do.ma.in"]
"I'm out of office, please contact Joan Doe instead.
Best regards
John Doe";
--

And as I said it works.

But when I send a message to this mailbox that could exceed it's quota
I get this on my logs:

-- 
Mar 25 14:02:25 mybox postfix/pickup[21407]: 68D1DA82F: uid=103 from=<>
Mar 25 14:02:25 mybox deliver(john.doe at do.ma.in):
msgid=<4BAB9728.6000601 at other.do.ma.in>: sent vacation response to
<faccenda at other.do.ma.in>
Mar 25 14:02:25 mybox postfix/cleanup[22119]: 68D1DA82F:
message-id=<dovecot-1269536545-332912-0 at do.ma.in>
Mar 25 14:02:25 mybox postfix/qmgr[17299]: 68D1DA82F: from=<>,
size=623, nrcpt=1 (queue active)
Mar 25 14:02:25 mybox deliver(john.doe at do.ma.in):
msgid=<4BAB9728.6000601 at other.do.ma.in>: save failed to INBOX: Quota
exceeded
Mar 25 14:02:25 mybox deliver(john.doe at do.ma.in): sieve runtime error:
Keep: Generic Error
Mar 25 14:02:25 mybox deliver(john.doe at do.ma.in):
sieve_execute_bytecode(/var/vmail/do.ma.in/john.doe/.dovecot.sievec)
failed
Mar 25 14:02:25 mybox deliver(john.doe at do.ma.in):
msgid=<4BAB9728.6000601 at do.ma.in>: Rejected: Quota exceeded
Mar 25 14:02:25 mybox postfix/pipe[22086]: 7C666A825:
to=<john.doe at do.ma.in>, relay=procmail, delay=1.1,
delays=0.39/0/0/0.68, dsn=4.3.0, status=deferred (temporary failure)
--

And every time the server tries again to deliver that message it
re-sends the auto-reply.

Is it an undesirable behavior, isn't it? Does anyone knows how to address it?

Also, I thought that that configuration (using the -e parameter to
deliver) and the "quota_full_tempfail = yes" would make give an
permanent error, not trying to deliver that message again. What is
wrong about it?

Thanks in advance,


More information about the dovecot mailing list