Hi everyone,

we have a duplicate e-mail problem with Dovecot 2.2.13 (LMTP as MDA) on a Debian 8 server.

Our users are on external LDAP.

We just need to setup a vacation responder (with Sieve) for our employees with a redirect to an alias (a distribution list), let's call it LIST@domain.com, that comprehends even the user that just activated the out of office.

This generates a loop: when someone write to LIST@domain.com every user of the aforementioned distribution list receives a duplicate e-mail generated from the sieve script of the user with vacation responder active that contains the redirect to LIST@domain.com.

We just tried activating the duplicate extension into sieve script but the redirected e-mail has a different MSG-ID and it's not recognized as a duplicate by the server.

Our dovecot conf is:

# 2.2.13: /etc/dovecot/dovecot.conf
auth_mechanisms = plain login
default_vsz_limit = 512 M
disable_plaintext_auth = no
dotlock_use_excl = no
info_log_path = /var/log/dovecot-info.log
log_path = /var/log/dovecot.log
mail_fsync = never
mail_location = maildir:~/Maildir
mail_max_userip_connections = 50
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave duplicate
mmap_disable = yes
passdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
passdb {
  args = /etc/dovecot/dovecot-ldap-archive.conf
  driver = ldap
}
plugin {
  sieve = file:/var/www/html/ooo/%n/script
  sieve_dir = /var/www/html/ooo/%n/
  sieve_duplicate_default_period = 1m
  sieve_duplicate_max_period = 1d
  sieve_extensions = +vnd.dovecot.duplicate +notify +imapflags +vacation-seconds
  sieve_global = /etc/dovecot/sieve/
  sieve_max_redirects = 10
  sieve_user_log = file:/var/www/html/ooo/%n/sieve_error.log
  sieve_vacation_default_period = 1d
  sieve_vacation_max_period = 90d
  sieve_vacation_min_period = 5s
}
protocols = imap pop3 lmtp sieve
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-master {
    group = vmail
    mode = 0660
    user = vmail
  }
  user = root
}
service imap-login {
  process_limit = 200
}
service lmtp {
  executable = lmtp -L
  process_min_avail = 5
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0666
    user = postfix
  }
  user = vmail
}
service managesieve-login {
  executable = /usr/lib/dovecot/managesieve-login
  inet_listener sieve {
    port = 4190
  }
  process_min_avail = 10
  service_count = 1
}
service managesieve {
  executable = /usr/lib/dovecot/managesieve
}
ssl_cert = </etc/ssl/xxxxxxxxxxxxxxxxxxxxxxxx
ssl_cipher_list = ALL:!LOW:!aNULL:!eNULL:!SSLv2:!RC4:!MD5:!DES:!EXP:!SEED:!IDEA:!3DES
ssl_key = </etc/ssl/private/xxxxxxxxxxxxxxxxxx
userdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
userdb {
  args = /etc/dovecot/dovecot-ldap-archive.conf
  driver = ldap
}
protocol lda {
  auth_socket_path = /var/run/dovecot/auth-master
  hostname = xxxxxxxxxxxxxxxxx
  info_log_path = /var/log/dovecot-lda.log
  log_path = /var/log/dovecot-lda-errors.log
  mail_plugins = " autocreate sieve quota"
}
protocol lmtp {
  info_log_path = /var/log/dovecot-lmtp.log
  log_path = /var/log/dovecot-lmtp-errors.log
  mail_plugins = " autocreate sieve quota"
  postmaster_address = postmaster@xxxxxxxxxx
}
protocol sieve {
  info_log_path =
  log_path =
  mail_max_userip_connections = 10
  managesieve_implementation_string = dovecot
  managesieve_logout_format = bytes=%i/%o
  managesieve_max_compile_errors = 5
  managesieve_max_line_length = 65536
}

An example of user sieve script is:

require ["vnd.dovecot.duplicate","copy","fileinto","vacation-seconds"];
# rule:[Outofoffice]
if true
{
    vacation :addresses "xxxxxxx@domain.tld" :subject "Automatic Reply" text:

<Text here>
.
;
    fileinto "INBOX";

    redirect "LIST@domain.com";

}

Please could someone give us support on the matter?

Removing the redirect from sieve user script is not an option :-)

Thanks

Cheers

--

Claudio Corvino
IT Systems Administrator

Trust Italia S.p.A.

DigiCert Italian Affiliate
Certified Partner Platinum Elite

Via Flaminia, 497 - 00191 Roma
tel.: +39 06332287
fax: +39 063336145
e-mail: ccorvino@trustitalia.it
website: www.trustitalia.it

Symantec Authentication Service
Le modalità di trattamento dei dati a cui è stato dato il consenso e le relative finalità sono consultabili al link.
Qualora non desiderasse ricevere le nostre comunicazioni, potrà comunicarlo mediante il seguente link.
Inoltre, in ogni momento, potrà modificare o cancellare i dati presenti nel nostro archivio contattandoci all'indirizzo privacy@trustitalia.it


Se possibile non stamparmi! Se possibile, non stamparmi!