sieve vacation: write to the .lda-dupes database without generating a vacation response.

Tom Hendrikx tom at
Tue Apr 19 18:55:50 UTC 2016

On 19-04-16 20:01, Bradley M. Kuhn wrote:
> I'm using Dovecot's sieve extensions quite happily, they are very good!
> Thanks for all who worked on them.  I have a question that maybe is
> appropriate for a sieve-specific discussion list, so if there is one I
> should post to instead, please let me know:
> I've poked through the sieve vacation RFC and all the documentation I
> can find and I cannot figure out how to do this.  It's more-or-less not
> the intent of sieve's vacation, so perhaps it's more of a "you can't get
> there from here" situation, but maybe folks here have an idea:
> I am (ab)?using sieve vacation to send an automated response at all
> times to all senders who put me in the To line, every 90 days, which
> explains my lack of responsiveness and to explain who else might be
> better contact. (I have hundreds of emails sent to me to which I will
> never have time to respond, and probably should have been routed to
> someone else at my organization anyway.)
> However, I *don't* want my regular correspondents to receive this
> autoreply.  I'd thus like to seed the database with known individuals
> I'm corresponding with to pretend they've already received the
> autoresponder.

You shouldn't try to force feed the dupes files, that's a hack: the
dupes files has no public api so you probably shouldnt be messing with
it directly.
A proper solution would be to include a list of excluded addresses in
the sieve script, and exempt those from the autoresponder, maybe
something like this:

require "envelope";
require "variables";

set :lower "whitelist" "first at example,com second at";

if envelope :matches "from" "*" {
  set :lower "sender" "${0}";
  if string :matches "${sender}" "${whitelist}" {
    # do nothing, sender is on whitelist
  } else{
    # do regular autoresponder stuff

The whitelist variable could be auto generated and updated from your
address book or archive box parser.

I have no idea if this actually scales. You could also implement the
whitelist variable using extdata
(, or
outsource the complete whitelist check to an external program (a trivial
script in a real programming language) using extprograms's "execute"

Good luck!

Kind regards,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the dovecot mailing list