Re: LDA-based vacation responses bouncing

2019-05-14 Thread micah anderson via dovecot


> Thanks for any suggestions,

Looks like my virtual_mailbox_domains setting in postfix was not doing
the proper lookup, so it thought my domain was local. I've fixed that,
so this is no longer an issue.


LDA-based vacation responses bouncing

2019-05-14 Thread micah anderson via dovecot


I've got dovecot vacataion auto-responses working via sieve, but when
the responses are sent, they are sent as if they are to be locally
delivered, which causes them to bounce for domains that I am not local
for. How can I get dovecot's sieve vacation response to check the domain
is local or not?

Here is an example of what happens:

The LDA notices it needs to send a vacation response:
2019-05-14T10:50:47.827466-07:00 brant dovecot: 
lda(u...@example.org)<14817>: sieve: 
msgid=<20190514135045.012486@localhost>: sent vacation response to 


but that response was sent via the postfix pipe through the dovecot lda
transport... because that is local, and the domain it is sending to is
not local, it bounces:

2019-05-14T10:50:47.92-07:00 brant postfix/pipe[14821]: C998381539: 
to=, relay=dovecot, delay=0.11, delays=0.04/0.01/0/0.06, 
dsn=5.1.1, status=bounced (user unknown)

Postfix is set to do this:

dovecot  unix-   n   n   -  -   pipe
  flags=DRhu user=mail argv=/usr/bin/spamc --connect-retries=1 -H -d 10.0.1.92 
-s 1024 -t 100 -u ${recipient} -e /usr/lib/dovecot/dovecot-lda -f ${sender} 
-d ${recipient}


require ["fileinto", "vacation"];
vacation
  :days 2
  :subject "Helllo"
"Hi";

Here is my doveconf -n:

# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.4 ()
# OS: Linux 4.9.0-8-amd64 x86_64 Debian 9.8 
auth_worker_max_count = 120
default_client_limit = 6144
default_process_limit = 256
default_vsz_limit = 512 M
dict {
  expire = mysql:/etc/dovecot/dovecot-dict-sql.conf
  quota = mysql:/etc/dovecot/dovecot-dict-sql.conf
}
disable_plaintext_auth = no
first_valid_gid = 8
first_valid_uid = 8
last_valid_gid = 8
last_valid_uid = 8
listen = *
login_greeting = howdy, ready.
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k
mail_location = mdbox:~/mdbox
mail_plugins = expire quota zlib
maildir_very_dirty_syncs = yes
namespace {
  inbox = yes
  location = 
  prefix = 
  separator = .
}
namespace {
  alias_for = 
  hidden = yes
  inbox = no
  list = no
  location = 
  prefix = INBOX.
  separator = .
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
plugin {
  expire = Trash
  expire2 = Trash/*
  expire3 = Spam
  expire_dict = proxy::expire
  quota = dict:Your mail quota::proxy::quota
  quota_rule = *:bytes=100663296
  quota_rule2 = Trash:bytes=+20%%
  quota_rule3 = Spam:bytes=+10%%
  quota_rule4 = INBOX.Trash:bytes=+20%%
  quota_rule5 = INBOX.Spam:bytes=+10%%
  quota_rule6 = INBOX.restored_from_backups:bytes=+500%%
  sieve = ~/.dovecot.sieve
  sieve_after = /var/lib/dovecot/sieve/after.sieve
  sieve_before = /var/lib/dovecot/sieve/default.sieve
  sieve_dir = ~/sieve
  zlib_save = gz
  zlib_save_level = 6
}
protocols = " imap pop3"
service anvil {
  unix_listener anvil {
group = dovecot
mode = 0660
user = root
  }
}
service auth {
  client_limit = 6144
  unix_listener auth-userdb {
group = mail
mode = 0600
user = mail
  }
}
service dict {
  unix_listener dict {
group = mail
mode = 0600
user = mail
  }
}
service imap-login {
  process_min_avail = 10
  service_count = 0
  vsz_limit = 512 M
}
service imap-postlogin {
  executable = script-login /usr/local/sbin/postlogin_imap
}
service imap {
  executable = imap imap-postlogin
  process_limit = 6144
}
service pop3-login {
  process_min_avail = 10
  service_count = 0
  vsz_limit = 512 M
}
service pop3-postlogin {
  executable = script-login /usr/local/sbin/postlogin_pop
}
service pop3 {
  executable = pop3 pop3-postlogin
}
service stats {
  unix_listener stats-writer {
group = mail
mode = 0660
  }
}
ssl_cert =