1 (edited by z3njth 2015-01-30 18:13:16)

Topic: roundcube vacation filter not works

==== Required information ====
- iRedMail version:  IREDMAIL_0.8.0
- Store mail accounts in which backend (LDAP/MySQL/PGSQL):  LDAP
- Linux/BSD distribution name and version:  CENTOS 6.2
- Related log if you're reporting an issue: SIEVE.LOG
- Roundcube versione: 0.7.2
====

Hi, i have in my office an intranet mailserver with iredmail. This server download email from external provider with fetchmail.
So i have "user@externaldomain.it" on provider and "user@intranetdomain.local"  on my intranet server with iredmail.
Everything works fine except vacation sieve filter. i have made some filters in roundcube and they work fine, i have made a forward filter and works fine except vacation.

This is my sieve.log:

Jan 29 21:27:24 lda(user@intranetdomain.local): Info: sieve: msgid=<54CA9754.6050003@externaldomani.it>: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=<pr$
Jan 29 21:27:24 lda(user@intranetdomain.local): Info: sieve: msgid=<54CA9754.6050003@externaldomain.it>: stored mail into mailbox 'INBOX'


I have made this change in postfix main.cf

mailbox_command = /usr/libexec/dovecot/deliver -f "$SENDER" -a "$ORIGINAL_RECIPIENT"

OR this in master.cf:

flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver  -f ${sender} -a ${recipient} -d ${user}@${domain}

but nothing.

Any ideas???

----

Spider Email Archiver: On-Premises, lightweight email archiving software developed by iRedMail team. Supports Amazon S3 compatible storage and custom branding.

2

Re: roundcube vacation filter not works

z3njth wrote:

Jan 29 21:27:24 lda(user@intranetdomain.local): Info: sieve: msgid=<54CA9754.6050003@externaldomani.it>: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=<pr$

Could you please paste FULL log here? as you can see, missed some content after 'recipient=<'.
Also, please turn on debug mode in Dovecot, then test again, paste FULL log related to this testing email in /var/log/dovecot.log and /var/log/dovecot-sieve.log.

3

Re: roundcube vacation filter not works

Hi thank you for reply

OK, these are my dovecot and sieve log:

SIEVE.LOG:

Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: Namespace : Using permissions from /var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//Maildir: mode=0700 gid=-1
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: Quota root: name=user backend=dict args=:proxy::quotadict
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: Quota rule: root=user mailbox=* bytes=1073741824 messages=0
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: Quota warning: bytes=912680550 (85%) messages=0 reverse=no command=quota-warning 85 user@intranetdomain.local
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: Quota warning: bytes=966367641 (90%) messages=0 reverse=no command=quota-warning 90 user@intranetdomain.local
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: Quota warning: bytes=1020054732 (95%) messages=0 reverse=no command=quota-warning 95 user@intranetdomain.local
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: dict quota: user=user@intranetdomain.local, uri=proxy::quotadict, noenforcing=0
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: none: root=, index=, control=, inbox=, alt=
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: Destination address: user@intranetdomain.local (source: -a parameter)
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: sieve: using sieve path for user's script: //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve/dovecot.sieve
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: sieve: opening script //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve/dovecot.sieve
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: sieve: script binary //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve/dovecot.svbin successfully loaded
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: sieve: binary save: not saving binary //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve/dovecot.svbin, because it is already stored
Jan 31 15:27:42 lda(user@intranetdomain.local): Debug: sieve: executing script from //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve/dovecot.svbin
Jan 31 15:27:42 lda(user@intranetdomain.local): Info: sieve: msgid=<54CA95CA.3080403@externaldomani.it>: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=<pruser@intranetdomain.local>, and no additional `:addresses' are specified)
Jan 31 15:27:42 lda(user@intranetdomain.local): Info: sieve: msgid=<54CA95CA.3080403@externaldomani.it>: stored mail into mailbox 'INBOX'


DOVECOT.LOG:

Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: Effective uid=500, gid=500, home=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21/
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir/
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: maildir++: root=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//Maildir, index=, control=, inbox=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.0101.29.19.39.21//Maildir, alt=
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/Shared/%u
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: shared: root=/var/run/dovecot, index=, control=, inbox=, alt=
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: sieve-storage: using active sieve script path: //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve/dovecot.sieve
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: sieve-storage: using sieve script storage directory: //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: sieve-storage: using permissions from //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve: mode=0700 gid=-1
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Debug: sieve-storage: relative path to sieve storage in active link:
Jan 31 15:26:54 managesieve(user@intranetdomain.local): Info: Disconnected: Logged out bytes=44/498
Jan 31 15:26:55 managesieve-login: Info: Login: user=<user@intranetdomain.local>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3417, secured
Jan 31 15:26:55 managesieve: Debug: Added userdb setting: plugin/quota_rule=*:bytes=0
Jan 31 15:26:55 managesieve: Debug: Added userdb setting: mail=maildir:~/Maildir/
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: Effective uid=500, gid=500, home=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21/
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir/
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: maildir++: root=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//Maildir, index=, control=, inbox=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.0101.29.19.39.21//Maildir, alt=
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/Shared/%u
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: shared: root=/var/run/dovecot, index=, control=, inbox=, alt=
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: sieve-storage: using active sieve script path: //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve/dovecot.sieve
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: sieve-storage: using sieve script storage directory: //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: sieve-storage: using permissions from //var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//sieve: mode=0700 gid=-1
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Debug: sieve-storage: relative path to sieve storage in active link:
Jan 31 15:26:55 imap-login: Info: Login: user=<user@intranetdomain.local>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=3419, secured
Jan 31 15:26:55 imap: Debug: Loading modules from directory: /usr/lib/dovecot
Jan 31 15:26:55 imap: Debug: Module loaded: /usr/lib/dovecot/lib10_quota_plugin.so
Jan 31 15:26:55 imap: Debug: Module loaded: /usr/lib/dovecot/lib11_imap_quota_plugin.so
Jan 31 15:26:55 imap: Debug: Module loaded: /usr/lib/dovecot/lib20_autocreate_plugin.so
Jan 31 15:26:55 imap: Debug: Added userdb setting: plugin/quota_rule=*:bytes=0
Jan 31 15:26:55 imap: Debug: Added userdb setting: mail=maildir:~/Maildir/
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Effective uid=500, gid=500, home=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21/
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Quota root: name=user backend=dict args=:proxy::quotadict
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Quota rule: root=user mailbox=* bytes=0 messages=0
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Quota warning: bytes=0 (85%) messages=0 reverse=no command=quota-warning 85 user@intranetdomain.local
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Quota warning: bytes=0 (90%) messages=0 reverse=no command=quota-warning 90 user@intranetdomain.local
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Quota warning: bytes=0 (95%) messages=0 reverse=no command=quota-warning 95 user@intranetdomain.local
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: dict quota: user=user@intranetdomain.local, uri=proxy::quotadict, noenforcing=0
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Namespace : type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir/
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: maildir++: root=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//Maildir, index=, control=, inbox=/var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.0101.29.19.39.21//Maildir, alt=
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/Shared/%u
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: shared: root=/var/run/dovecot, index=, control=, inbox=, alt=
Jan 31 15:26:55 imap(user@intranetdomain.local): Debug: Namespace : Using permissions from /var/vmail/vmail1/intranetdomain.local/u/s/e/user-2015.01.29.19.39.21//Maildir: mode=0700 gid=-1
Jan 31 15:26:55 imap(user@intranetdomain.local): Info: Disconnected: Logged out bytes=76/804
Jan 31 15:26:55 managesieve(user@intranetdomain.local): Info: Disconnected: Logged out bytes=44/498

THIS IS MY DOVECOT.SIEVE FILTER:

# rule:[outoff]
if true
{
        vacation "Thank you for your email. I’m out of the office. ";
        stop;
}


THIS IS MY DOVECOT -N:

# OS: Linux 2.6.32-220.el6.i686 i686 CentOS release 6.2 (Final)
auth_mechanisms = PLAIN LOGIN
dict {
  acl = mysql:/etc/dovecot/dovecot-share-folder.conf
  expire = db:/var/lib/dovecot/expire/expire.db
  quotadict = mysql:/etc/dovecot/dovecot-used-quota.conf
}
disable_plaintext_auth = no
last_valid_uid = 500
listen = *
log_path = /var/log/dovecot.log
mail_debug = yes
mail_gid = 500
mail_location = maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/
mail_uid = 500
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
namespace {
  inbox = yes
  location =
  prefix =
  separator = /
  type = private
}
namespace {
  list = children
  location = maildir:/%%Lh/Maildir/:INDEX=/%%Lh/Maildir/Shared/%%u
  prefix = Shared/%%u/
  separator = /
  subscriptions = yes
  type = shared
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
plugin {
  acl = vfile
  acl_shared_dict = proxy::acl
  auth_socket_path = /var/run/dovecot/auth-master
  autocreate = INBOX
  autocreate2 = Sent
  autocreate3 = Trash
  autocreate4 = Drafts
  autocreate5 = Junk
  autosubscribe = INBOX
  autosubscribe2 = Sent
  autosubscribe3 = Trash
  autosubscribe4 = Drafts
  autosubscribe5 = Junk
  expire = Trash 7 Trash/* 7 Junk 30
  expire_dict = proxy::expire
  quota = dict:user::proxy::quotadict
  quota_rule = *:storage=1G
  quota_warning = storage=85%% quota-warning 85 %u
  quota_warning2 = storage=90%% quota-warning 90 %u
  quota_warning3 = storage=95%% quota-warning 95 %u
  sieve = /%Lh/sieve/dovecot.sieve
  sieve_dir = /%Lh/sieve
  sieve_global_dir = /var/vmail/sieve
  sieve_global_path = /var/vmail/sieve/dovecot.sieve
}
protocols = pop3 imap sieve
service auth {
  unix_listener /var/spool/postfix/dovecot-auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  unix_listener auth-master {
    group = vmail
    mode = 0666
    user = vmail
  }
}
service dict {
  unix_listener dict {
    group = vmail
    mode = 0660
    user = vmail
  }
}
service quota-warning {
  executable = script /usr/local/bin/dovecot-quota-warning.sh
  unix_listener quota-warning {
    group = vmail
    mode = 0660
    user = vmail
  }
}
ssl_cert = </etc/pki/tls/certs/iRedMail_CA.pem
ssl_key = </etc/pki/tls/private/iRedMail.key
userdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
protocol lda {
  auth_socket_path = /var/run/dovecot/auth-master
  lda_mailbox_autocreate = yes
  log_path = /var/log/sieve.log
  mail_plugins = quota sieve autocreate
  postmaster_address = root
}
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep
  mail_plugins = quota imap_quota autocreate
}
protocol pop3 {
  mail_plugins = quota
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_uidl_format = %08Xu%08Xv
}

4

Re: roundcube vacation filter not works

z3njth wrote:

Jan 31 15:27:42 lda(user@intranetdomain.local): Info: sieve: msgid=<54CA95CA.3080403@externaldomani.it>: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=<pruser@intranetdomain.local>, and no additional `:addresses' are specified)

OK, no additional errors, just above one.
it says no know recipient address in email, and no additional ':addresses' are specified. So you should be able to solve this issue by specify additional ':addresses' in sieve rules. For example:

if true
{
        vacation :addresses ["original_user@example.com", "additional_user@domain.com"] "Thank you for your email. I’m out of the office. ";
        stop;
}

5

Re: roundcube vacation filter not works

ZhangHuangbin wrote:
z3njth wrote:

Jan 31 15:27:42 lda(user@intranetdomain.local): Info: sieve: msgid=<54CA95CA.3080403@externaldomani.it>: discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers (recipient=<pruser@intranetdomain.local>, and no additional `:addresses' are specified)

OK, no additional errors, just above one.
it says no know recipient address in email, and no additional ':addresses' are specified. So you should be able to solve this issue by specify additional ':addresses' in sieve rules. For example:

if true
{
        vacation :addresses ["original_user@example.com", "additional_user@domain.com"] "Thank you for your email. I’m out of the office. ";
        stop;
}

Ok, now it works!