Re: Sieve filter fileinto doesn't preserve flags

2018-03-02 Thread Stephan Bosch
Op 3/2/2018 om 6:41 PM schreef Konstantinos Tsakiltzidis:
> Using `fileinto` to move a mail into another mailbox removes flags
>
> that have been set with a previous sieve filter with `addflag`.

I need to see your script to help you.

Regards,

Stephan Bosch.



>
> # 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.21 (92477967)
> # OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.1 ext4
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> mail_debug = yes
> mail_location = maildir:/var/vmail/%d/%n
> 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 index ihave duplicate mime foreverypart
> extracttext
> namespace inbox {
>   inbox = yes
>   location =
>   mailbox Drafts {
>     special_use = \Drafts
>   }
>   mailbox Junk {
>     special_use = \Junk
>   }
>   mailbox Sent {
>     special_use = \Sent
>   }
>   mailbox "Sent Messages" {
>     special_use = \Sent
>   }
>   mailbox Trash {
>     special_use = \Trash
>   }
>   prefix =
>   separator = .
>   subscriptions = yes
>   type = private
> }
> namespace modulus {
>   list = children
>   location = maildir:/var/vmail/%d/Public:INDEXPVT=~/public/indexes
>   mailbox admin {
>     auto = subscribe
>   }
>   mailbox support {
>     auto = subscribe
>   }
>   mailbox telecoms {
>     auto = subscribe
>   }
>   prefix = Public.
>   separator = .
>   subscriptions = yes
>   type = public
> }
> passdb {
>   driver = pam
> }
> plugin {
>   acl = vfile
>   mail_log_events = flag_change
>   mail_log_fields = box flags uid
>   sieve = ~/dovecot.sieve
>   sieve_before = /var/vmail/global.sieve
>   sieve_dir = ~/sieve
>   sieve_global_dir = /var/vmail/sieve
> }
> protocols = " imap lmtp sieve lmtp"
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     group = mail
>     mode = 0666
>     user = postfix
>   }
>   unix_listener auth-userdb {
>     group = mail
>     mode = 0666
>     user = vmail
>   }
> }
> service imap-login {
>   inet_listener imap {
>     port = 0
>   }
> }
> service lmtp {
>   unix_listener /var/spool/postfix/private/dovecot-lmtp {
>     group = postfix
>     mode = 0600
>     user = postfix
>   }
> }
> service managesieve-login {
>   inet_listener sieve {
>     port = 4190
>   }
>   process_min_avail = 0
>   service_count = 1
>   vsz_limit = 64 M
> }
> service managesieve {
>   process_limit = 1024
> }
> ssl = required
> ssl_cert =  ssl_key =  # hidden, use -P to show it
> userdb {
>   driver = passwd
> }
> protocol imap {
>   mail_max_userip_connections = 20
>   mail_plugins = " mail_log notify acl"
>   passdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>   }
>   userdb {
>     args = uid=vmail gid=mail home=/var/vmail/%d/%n
>     driver = static
>     name =
>   }
> }
> protocol lda {
>   mail_plugins = " sieve acl"
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol lmtp {
>   mail_plugins = " sieve acl"
>   postmaster_address = postmas...@modulus.gr
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol doveadm {
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol sieve {
>   mail_max_userip_connections = 10
>   managesieve_implementation_string = Dovecot Pigeonhole
>   managesieve_logout_format = bytes=%i/%o
>   managesieve_max_line_length = 65536
>   passdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>   }
>   userdb {
>     args = uid=vmail gid=mail home=/var/vmail/%d/%n
>     driver = static
>     name =
>   }
> }
>



Re: Sieve filter imapflags with "flagvar" not working

2018-03-02 Thread Stephan Bosch
Op 3/2/2018 om 6:09 PM schreef Konstantinos Tsakiltzidis:
> Following the rfc5232, Sieve Email Filtering: Imap4flags Extension
>
> the following filter doesn't work when the `"flagvar"` part is added
>
> require "imap4flags";
>
> if header :contains "X-Spam" "Yes" {
>
>   setflag "flagvar" "spam";
>
> }

You should be getting an error logged somewhere. Using a flag variable
is not allowed, unless the variables extension is enabled. So, you must
add `require "variables";' for this script to make sense at all.

Regards,

Stephan.




> removing the `"flagvar"` part works as expected
>
>
> # 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.21 (92477967)
> # OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.1 ext4
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> mail_debug = yes
> mail_location = maildir:/var/vmail/%d/%n
> 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 index ihave duplicate mime foreverypart
> extracttext
> namespace inbox {
>   inbox = yes
>   location =
>   mailbox Drafts {
>     special_use = \Drafts
>   }
>   mailbox Junk {
>     special_use = \Junk
>   }
>   mailbox Sent {
>     special_use = \Sent
>   }
>   mailbox "Sent Messages" {
>     special_use = \Sent
>   }
>   mailbox Trash {
>     special_use = \Trash
>   }
>   prefix =
>   separator = .
>   subscriptions = yes
>   type = private
> }
> namespace modulus {
>   list = children
>   location = maildir:/var/vmail/%d/Public:INDEXPVT=~/public/indexes
>   mailbox admin {
>     auto = subscribe
>   }
>   mailbox support {
>     auto = subscribe
>   }
>   mailbox telecoms {
>     auto = subscribe
>   }
>   prefix = Public.
>   separator = .
>   subscriptions = yes
>   type = public
> }
> passdb {
>   driver = pam
> }
> plugin {
>   acl = vfile
>   mail_log_events = flag_change
>   mail_log_fields = box flags uid
>   sieve = ~/dovecot.sieve
>   sieve_before = /var/vmail/global.sieve
>   sieve_dir = ~/sieve
>   sieve_global_dir = /var/vmail/sieve
> }
> protocols = " imap lmtp sieve lmtp"
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     group = mail
>     mode = 0666
>     user = postfix
>   }
>   unix_listener auth-userdb {
>     group = mail
>     mode = 0666
>     user = vmail
>   }
> }
> service imap-login {
>   inet_listener imap {
>     port = 0
>   }
> }
> service lmtp {
>   unix_listener /var/spool/postfix/private/dovecot-lmtp {
>     group = postfix
>     mode = 0600
>     user = postfix
>   }
> }
> service managesieve-login {
>   inet_listener sieve {
>     port = 4190
>   }
>   process_min_avail = 0
>   service_count = 1
>   vsz_limit = 64 M
> }
> service managesieve {
>   process_limit = 1024
> }
> ssl = required
> ssl_cert =  ssl_key =  # hidden, use -P to show it
> userdb {
>   driver = passwd
> }
> protocol imap {
>   mail_max_userip_connections = 20
>   mail_plugins = " mail_log notify acl"
>   passdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>   }
>   userdb {
>     args = uid=vmail gid=mail home=/var/vmail/%d/%n
>     driver = static
>     name =
>   }
> }
> protocol lda {
>   mail_plugins = " sieve acl"
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol lmtp {
>   mail_plugins = " sieve acl"
>   postmaster_address = postmas...@modulus.gr
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol doveadm {
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
>   }
>   userdb {
>     args = /etc/dovecot/dovecot-ldap-groups.conf.ext
>     driver = ldap
>     name =
>     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n
> mail=maildir:/var/vmail/%d/Public/.%n
>   }
> }
> protocol sieve {
>   mail_max_userip_connections = 10
>   managesieve_implementation_string = Dovecot Pigeonhole
>   managesieve_logout_format = bytes=%i/%o
>   managesieve_max_line_length = 65536
>   passdb {
>     args = /etc/dovecot/dovecot-ldap-users.conf.ext
>     driver = ldap
>     name =
>   }
>   userdb {
>     args = 

Re: Virtual question

2018-03-02 Thread LuKreme
On Mar 2, 2018, at 14:56, List  wrote:
> 
> namespace {
>   prefix = @virtual.
>  separator = .
>  location = 
> virtual:/usr/local/etc/dovecot/virtual:INDEX=˜/Maildir/virtual:CONTROL:˜/Maildir/virtual
> }

 # cat /usr/local/etc/virtual/month/dovecot-vitual 
# ~/Maildir/virtual/month/dovecot-virtual
*
  all younger 2678400

-- 
My main job is trying to come up with new and innovative and effective ways to 
reject even more mail. I'm up to about 97% now.

pigeonhole 0.4.22 with sieve_before script crashes

2018-03-02 Thread Jan

Hello!

Dovecot 2.2.34 (874deae)
Pigeonhole version 0.4.22 (22940fb7)

After the update to pigeonhole version 0.4.22 the following
configuration does not work. With version 0.4.21 it works.

dovecot.conf (only sieve configuration)
---
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 index ihave duplicate mime foreverypart 
extracttext editheader

sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_before = /etc/dovecot/sieve/filter
sieve_extensions = +editheader
sieve_max_script_size = 1M
service managesieve-login {
  inet_listener sieve {
port = 4190
  }
}
protocol sieve {
  mail_max_userip_connections = 10
  managesieve_implementation_string = Sieve
  managesieve_logout_format = bytes=%i/%o
}
---

sieve_before script for all users (/etc/dovecot/sieve/filter)
---
require ["editheader"];

if header :contains "X-Spam-Flag" "YES" {
  addheader "X-Filter-Junk-Flag" "YES";
  addheader "X-Filter-Junk-Type" "SPAM";
}
elsif header :contains "X-Amavis-Alert" "INFECTED" {
  addheader "X-Filter-Junk-Flag" "YES";
  addheader "X-Filter-Junk-Type" "VIRUS";
}
elsif header :contains "X-Amavis-Alert" "BANNED" {
  addheader "X-Filter-Junk-Flag" "YES";
  addheader "X-Filter-Junk-Type" "ATTACHMENT";
}
else {
  addheader "X-Filter-Junk-Flag" "NO";
  addheader "X-Filter-Junk-Type" "NONE";
}
---

sieve script for user post...@example.com (.dovecot.sieve)
---
require ["copy"];
if allof (header :is "X-Filter-Junk-Flag" "NO")
{
  redirect :copy "c...@example.com";
}
---

I use LMTP to deliver the mail to the user and the
following error occurs:

Mar  3 02:31:34 test dovecot: lmtp(post...@example.com): Panic: file 
istream.c: line 197 (i_stream_read): assertion failed: 
((size_t)ret+old_size == _stream->pos - _stream->skip)
Mar  3 02:31:34 test dovecot: lmtp(post...@example.com): Error: Raw 
backtrace: /usr/local/lib/dovecot/libdovecot.so.0(+0x9c7a0) 
[0x7f8c015be7a0] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x9c88c) 
[0x7f8c015be88c] -> /usr/local/lib/dovecot/libdovecot.so.0(i_fatal+0) 
[0x7f8c0155294d] -> 
/usr/local/lib/dovecot/libdovecot.so.0(i_stream_read+0x2c8) 
[0x7f8c015c99d8] -> 
/usr/local/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) 
[0x7f8c015ca15d] -> 
/usr/local/lib/dovecot/libdovecot.so.0(message_parse_header_next+0x63) 
[0x7f8c015a72e3] -> /usr/local/lib/dovecot/libdovecot.so.0(+0x7efb1) 
[0x7f8c015a0fb1] -> 
/usr/local/lib/dovecot/libdovecot.so.0(i_stream_read+0x53) 
[0x7f8c015c9763] -> 
/usr/local/lib/dovecot/libdovecot.so.0(i_stream_read_data+0x3d) 
[0x7f8c015ca15d] -> 
/usr/local/lib/dovecot/libdovecot.so.0(io_stream_copy+0x75) 
[0x7f8c015df1a5] -> /usr/local/lib/dovecot/libdovecot.so.0(+0xbf5e0) 
[0x7f8c015e15e0] -> 
/usr/local/lib/dovecot/libdovecot.so.0(o_stream_send_istream+0x33) 
[0x7f8c015df003] -> 
/usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x4dbf4) [0x7f8bfbb3abf4] 
-> /usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x3f22a) 
[0x7f8bfbb2c22a] -> 
/usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x27f) 
[0x7f8bfbb2da6f] -> 
/usr/local/lib/dovecot/libdovecot-sieve.so.0(+0x502ee) [0x7f8bfbb3d2ee] 
-> 
/usr/local/lib/dovecot/libdovecot-sieve.so.0(sieve_multiscript_run+0xa6) 
[0x7f8bfbb3def6] -> 
/usr/local/lib/dovecot/lib90_sieve_plugin.so(+0x379a) [0x7f8bfbda279a] 
-> /usr/local/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0xa2) 
[0x7f8c01b9d942] -> dovecot/lmtp [DATA 127.0.0.1 post...@example.com]() 
[0x406c0b] -> 
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x52) 
[0x7f8c015d3c22] -> 
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0xea) 
[0x7f8c015d51ca] -> 
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x3c) 
[0x7f8c015d3cbc] -> 
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x38) 
[0x7f8c015d3e68] -> 
/usr/local/lib/dovecot/libdovecot.so.0(master_service_run+0x13) 
[0x7f8c0155caa3] -> dovecot/lmtp [DATA 127.0.0.1 
post...@example.com](main+0x18c) [0x404fbc] -> 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f8c01198b45] 
-> dovecot/lmtp [DATA 127.0.0.1 post...@example.com]() [0x405065]
Mar  3 02:31:34 test dovecot: lmtp(post...@example.com): Fatal: master: 
service(lmtp): child 13445 killed with signal 6 (core dumps disabled)


If I change the sieve script for this user, it works.
For example:
---
require ["copy"];
if allof (header :is "X-Filter-Junk-Status" "NO")
{
  redirect :copy 

Re: Upgrade to 2.3.0.1 bre aks server

2018-03-02 Thread post
Another remark:

I have installed the new version from the PPA provided by dovecot.org:

deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/xenial xenial main

Before (2.2.22) I had installed it from the ubuntu (canonical) package
sources - and not the PPA provided by dovecot.org.

Could it be, that the two don't play together?

Bye
Volker



Re: Upgrade to 2.3.0.1 bre aks server

2018-03-02 Thread post
Here is my "dovecot -n":



# 2.3.0.1 (ffd8a29): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.0.1 (d33dca2)
# OS: Linux 4.4.0-116-generic x86_64 Ubuntu 16.04.4 LTS
auth_debug = yes
auth_username_format = %n
auth_verbose = yes
hostname = volker-wysk.de
log_path = /var/log/dovecot.log
mail_debug = yes
mail_location = mdbox:~/lib/Dovecot-Mail
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 index ihave duplicate mime foreverypart
extracttext imapsieve vnd.dovecot.imapsieve
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
special_use = \Drafts
  }
  mailbox Entwürfe {
special_use = \Drafts
  }
  mailbox Junk {
special_use = \Junk
  }
  mailbox Papierkorb {
special_use = \Trash
  }
  mailbox Sent {
special_use = \Sent
  }
  mailbox "Sent Messages" {
special_use = \Sent
  }
  mailbox Trash {
special_use = \Trash
  }
  mailbox "Versendete Nachrichten" {
special_use = \Sent
  }
  prefix =
  separator = .
}
passdb {
  driver = pam
}
plugin {
  imapsieve_mailbox1_before =
file:/usr/lib/dovecot/sieve/report-spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Spam
  imapsieve_mailbox2_before =
file:/usr/lib/dovecot/sieve/report-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Spam
  imapsieve_mailbox2_name = *
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/lib/Sieve
  sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
  sieve_pipe_bin_dir = /usr/lib/dovecot/sieve
  sieve_plugins = sieve_imapsieve sieve_extprograms
}
postmaster_address = p...@volker-wysk.de
protocols = imap lmtp sieve
ssl = required
ssl_cert = 

Upgrade to 2.3.0.1 breaks server

2018-03-02 Thread post
Hi

I've upgraded dovecot from 2.2.22 to 2.3.0.1, and now I can't log in any
longer. My mail client says that the user name and password are rejected
by dovecot. I get this messsage in the system logs:

% journalctl -u dovecot.service
(...)
Mär 03 01:39:23 desktop systemd[1]: Stopped Dovecot IMAP/POP3 email
server.
Mär 03 01:39:23 desktop systemd[1]: Started Dovecot IMAP/POP3 email
server.
Mär 03 01:39:39 desktop auth[5736]: PAM audit_log_acct_message()
failed: Operation not permitted

I've followed the instructions in
https://wiki2.dovecot.org/Upgrading/2.3 and https://repo.dovecot.org/
(for Ubuntu Xenial).

Any ideas..?

Bye
V.W.



Re: Virtual question

2018-03-02 Thread List







Sorry, different email client on the road.
I created the folders under my dovecot install /usr/local/etc/dovecot/virtual/ 
and then created month and day folders with dovecot-virtaul files in each 
folder. The folders how up on the mail clients, but either are inaccessible, or 
empty.
namespace {  prefix = @virtual. separator = . location = 
virtual:/usr/local/etc/dovecot/virtual:INDEX=˜/Maildir/virtual:CONTROL:˜/Maildir/virtual}
On Mar 1, 2018, at 22:35, Aki Tuomi  
wrote:/etc/dovecot/virtual/month/dovecot-virtual

Then in dovecot.conf  you put

namespace virtual {
 location = virtual:/etc/dovecot/virtual:INDEX=~/virtual:CONTROL=~/virtual






Re: Debian: Dovecot 2.3.0.1 won't start if dovecot-pop3d is missing

2018-03-02 Thread Markus Schönhaber
Aki Tuomi, Fri, 02 Mar 2018 20:06:35 +0200:

> the problem is default
>  protocols = imap pop3 

Ah, OK. I wasn't aware that the default had changed. It seems to be
protocols = imap pop3 lmtp
now.

> packaging should use
> protocols =
> protocols = $protocols imap

Yep, explicitly setting
protocols =
before
!include_try /usr/share/dovecot/protocols.d/*.protocol
helps.

IMO Something like that should be changed in the official packages too.

-- 
Regards
  mks


requiring a full fqdn for authentication

2018-03-02 Thread David Mehler
Hello,

I'm using dovecot to do postfix authentication. I'm trying to get
dovecot to require a complete email address as a login. Currently I
can log in by either a username or fqdn. I've got the below what is
the issue?

If I need to provide my sql password query let me know.

Thanks.
Dave.

doveconf -n
# 2.2.34 (874deae): /usr/local/etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.21 (92477967)
# OS: FreeBSD 11.1-RELEASE-p4 amd64
# Hostname: localhost
auth_cache_size = 10 M
auth_default_realm = example.com
auth_realms = example.com example2.com
dict {
  acl = mysql:/usr/local/etc/dovecot/shared-folders.conf
  sqlquota = mysql:/usr/local/etc/dovecot/quota.conf
}
first_valid_gid = 999
first_valid_uid = 999
hostname = mail.example.com
imap_idle_notify_interval = 10 mins
last_valid_gid = 999
last_valid_uid = 999
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
lda_original_recipient_header = X-Original-To
listen = 127.0.0.1 xxx.xxx.xxx.xxx
lmtp_rcpt_check_quota = yes
mail_access_groups = vmail
mail_fsync = never
mail_gid = vmail
mail_home = /home/vmail/mailboxes/%d/%n
mail_location = maildir:~/mail:LAYOUT=fs
mail_plugins = acl mail_log notify quota quota_clone trash virtual welcome zlib
mail_privileged_group = vmail
mail_server_admin = mailto:postmas...@example.com
mail_uid = vmail
mailbox_list_index = yes
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 index ihave duplicate mime foreverypart
extracttext imapflags notify imapsieve vnd.dovecot.imapsieve
namespace {
  list = children
  location = maildir:/home/vmail/public:LAYOUT=fs:INDEXPVT=~/mail/public
  mailbox TestFolder {
auto = subscribe
comment = Public Folder for message sharing
  }
  prefix = public/
  separator = /
  subscriptions = no
  type = public
}
namespace {
  list = children
  location = maildir:%%h/Maildir:INDEXPVT=~/Maildir/shared/%%u
  prefix = shared/%%u/
  separator = /
  subscriptions = no
  type = shared
}
namespace inbox {
  inbox = yes
  location =
  mailbox Archive {
auto = no
special_use = \Archive
  }
  mailbox Archives {
auto = subscribe
special_use = \Archive
  }
  mailbox "Deleted Messages" {
auto = no
autoexpunge = 30 days
special_use = \Trash
  }
  mailbox Drafts {
auto = subscribe
special_use = \Drafts
  }
  mailbox Junk {
auto = no
autoexpunge = 30 days
special_use = \Junk
  }
  mailbox "Junk E-mail" {
auto = no
autoexpunge = 30 days
special_use = \Junk
  }
  mailbox Sent {
auto = subscribe
special_use = \Sent
  }
  mailbox "Sent Items" {
auto = no
special_use = \Sent
  }
  mailbox "Sent Messages" {
auto = no
special_use = \Sent
  }
  mailbox Spam {
auto = subscribe
autoexpunge = 30 days
special_use = \Junk
  }
  mailbox Trash {
auto = subscribe
autoexpunge = 30 days
special_use = \Trash
  }
  mailbox virtual/All {
comment = All my messages
special_use = \All
  }
  prefix =
  separator = /
  type = private
}
namespace virtual {
  location = 
virtual:/usr/local/etc/dovecot/virtual:INDEX=~/virtual:CONTROL=~/virtual
  prefix = virtual/
  separator = /
}
passdb {
  args = /usr/local/etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300
  acl_anyone = allow
  acl_globals_only = yes
  acl_shared_dict = proxy::acl
  fts = solr
  fts_autoindex = yes
  fts_solr = url=http://127.0.0.1:8983/solr/dovecot/
  imapsieve_mailbox1_before = file:/home/vmail/sieve/global/learn-spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Spam
  imapsieve_mailbox2_before = file:/home/vmail/sieve/global/learn-ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Spam
  imapsieve_mailbox2_name = *
  last_login_dict = proxy::lastlogin
  last_login_key = last-login/%u
  mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
  mail_log_fields = uid box msgid size
  quota = count:User quota
  quota_clone_dict = proxy::sqlquota
  quota_exceeded_message = Storage quota for this account has been
exceeded, please try again later.
  quota_grace = 10%%
  quota_status_nouser = DUNNO
  quota_status_overquota = 552 5.2.2 Mailbox is full
  quota_status_success = DUNNO
  quota_vsizes = true
  quota_warning = storage=100%% quota-exceeded 100 %u
  quota_warning2 = storage=95%% quota-warning 95 %u
  quota_warning3 = storage=90%% quota-warning 90 %u
  quota_warning4 = storage=85%% quota-warning 85 %u
  quota_warning5 = storage=75%% quota-warning 75 %u
  sieve = ~/.dovecot.sieve
  sieve_before = /home/vmail/sieve/before.d
  sieve_default = /home/vmail/sieve/default.sieve
  sieve_dir = ~/sieve
  sieve_extensions = +notify +imapflags
  sieve_global_dir = /home/vmail/sieve
  sieve_global_extensions = 

Re: Virtual question

2018-03-02 Thread LuKreme
On Mar 1, 2018, at 22:35, Aki Tuomi  wrote:
> 
> Under /etc/dovecot/virtual
> 
> you create the virtual folder structure you want, and put the dovecot-virtual 
> files under those folders.
> 
> such as
> 
> /etc/dovecot/virtual/month/dovecot-virtual
> 
> Then in dovecot.conf  you put
> 
> namespace virtual {
>  location = virtual:/etc/dovecot/virtual:INDEX=~/virtual:CONTROL=~/virtual


Ah, that is nifty. I did try setting up a sample monthly box under my list 
accounts, but when I loaded up my mail client (I tried three) it only showed 
"virtual”and "month”as empty mailboxes (Mail.app in iOS/macOS, Thunderbird, 
Roundcube webmail).

However, this is more in line with what I would like to create, a single 
configuration for ALL users, so I will give that a shot before I start 
trouble-shooting.

One quick note, ISBN;'t the default separator for Maildir '.’ and not '/'? I'd 
guess most everyone will need to specify

prefix=virtual. 
separator=. 

Yes? (At least when I tried '/‘as the separator dovecot complained)

-- 
My main job is trying to come up with new and innovative and effective ways to 
reject even more mail. I'm up to about 97% now.

> 


Re: Sieve filter imapflags with "flagvar" not working

2018-03-02 Thread Larry Rosenman
It is:
- imap4flags extension: Fix binary byte-code corruption occurring when
the setflag, addflag, or removeflag command's flag-list is a variable.


--
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 214-642-9640 E-Mail: larry...@gmail.com
US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106
From: dovecot  on behalf of Aki Tuomi 

Date: Friday, March 2, 2018 at 12:07 PM
To: Larry Rosenman , Konstantinos Tsakiltzidis 
, Dovecot List 
Subject: Re: Sieve filter imapflags with "flagvar" not working

its quite likely fixed in 0.4.22



---
Aki Tuomi
Dovecot oy

 Original message 
From: Larry Rosenman 
Date: 02/03/2018 19:55 (GMT+02:00)
To: Konstantinos Tsakiltzidis , dovecot@dovecot.org
Subject: Re: Sieve filter imapflags with "flagvar" not working

I don't remember if this was fixed in 0.4.21 or not, but it's definitely fixed 
in 0.5.0, which requires dovecot 2.3.


--
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 214-642-9640 E-Mail: larry...@gmail.com
US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106
On 3/2/18, 11:42 AM, "dovecot on behalf of Konstantinos Tsakiltzidis" 
 wrote:

well i posted the doveconf...
# Pigeonhole version 0.4.21 (92477967)




Re: Sieve filter imapflags with "flagvar" not working

2018-03-02 Thread Larry Rosenman
I don't remember if this was fixed in 0.4.21 or not, but it's definitely fixed 
in 0.5.0, which requires dovecot 2.3.


-- 
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 214-642-9640 E-Mail: larry...@gmail.com
US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106
On 3/2/18, 11:42 AM, "dovecot on behalf of Konstantinos Tsakiltzidis" 
 wrote:

well i posted the doveconf...
# Pigeonhole version 0.4.21 (92477967)



Debian: Dovecot 2.3.0.1 won't start if dovecot-pop3d is missing

2018-03-02 Thread Markus Schönhaber
Hello,

given a Debian 9 system with Dovecot 2.2.34 installed from self-built
packages made from the official tarball combined with Stephan Bosch's
debian files (upgraded multiple times from packages made in a similar way).
Today, I updated this system to 2.3.0.1 from the official repository at
repo.dovecot.org. After the update, dovecot wouldn't start because of:
> dovecot: master: Fatal: service(pop3) access(/usr/lib/dovecot/pop3)
failed: No such file or directory

Obviously, installing the dovecot-pop3d package, which provides the pop3
binary, made the error go away.
Nevertheless, until v. 2.2.34 not installing the pop3 binary had never
been a problem. Trying to solve this, I even commented the following
sections in the config (which previously hadn't caused problems since
the lines defining the ports etc. had already been commented):

> 10-master.conf:

> service pop3-login {
>   inet_listener pop3 {
> #port = 110
>   }
>   inet_listener pop3s {
> #port = 995
> #ssl = yes
>   }
> }

> service pop3 {
>   # Max. number of POP3 processes (connections)
>   #process_limit = 1024
> }

> 10-director.conf:

> service pop3-login {
>   #executable = pop3-login director
> }

After those changes I had the configuration shown below, which produced
the described error.
Why would Dovecot insist that the pop3 binary has to exist on the system?

BTW: Note the protocols = line in the doveconf -n output, whereas

> # grep -R protocols /etc/dovecot/
> /etc/dovecot/dovecot.conf:# Most (but not all) settings can be overridden by 
> different protocols and/or
> /etc/dovecot/dovecot.conf:# Enable installed protocols
> /etc/dovecot/dovecot.conf:!include_try 
> /usr/share/dovecot/protocols.d/*.protocol
> /etc/dovecot/conf.d/20-managesieve.conf:#protocols = $protocols sieve
> /etc/dovecot/conf.d/10-ssl.conf:# SSL protocols to use
> /etc/dovecot/conf.d/10-ssl.conf:#ssl_protocols = !SSLv2

> # ll /usr/share/dovecot/protocols.d/
> insgesamt 12
> -rw-r--r-- 1 root root 28 Mär  2 14:51 imapd.protocol
> -rw-r--r-- 1 root root 28 Mär  2 14:51 lmtpd.protocol
> -rw-r--r-- 1 root root 29 Mär  2 14:51 managesieved.protocol

Regards
  mks


doveconf -n

# 2.3.0.1 (ffd8a29): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.0.1 (d33dca2)
# OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.3 ext4
auth_master_user_separator = *
auth_mechanisms = plain login
dict {
  quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
imap_id_log = *
mail_home = /var/spool/vmail/home/%d/%n
mail_location = mdbox:/var/spool/vmail/mail/%d/%n
mail_log_prefix = "%s[%p](%u)<%{session}>: "
mail_plugins = " quota acl"
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 index ihave duplicate mime foreverypart extracttext
namespace {
  list = children
  location =
mdbox:/var/spool/vmail/mail/Public:INDEXPVT=/var/spool/vmail/home/Public
  prefix = Public/
  separator = /
  subscriptions = no
  type = public
}
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
special_use = \Drafts
  }
  mailbox Junk {
special_use = \Junk
  }
  mailbox Sent {
special_use = \Sent
  }
  mailbox "Sent Messages" {
special_use = \Sent
  }
  mailbox Trash {
special_use = \Trash
  }
  prefix =
  separator = /
}
passdb {
  args = /etc/dovecot/master-users
  driver = passwd-file
  master = yes
  pass = yes
}
passdb {
  args = /etc/dovecot/dovecot-proxy-sql.conf.ext
  driver = sql
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
passdb {
  args = /etc/dovecot/dovecot-system-sql.conf.ext
  driver = sql
}
plugin {
  acl = vfile
  mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename
  mail_log_fields = uid box msgid size
  quota = dict:User quota::proxy::quota
  recipient_delimiter = +
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_after = /var/spool/vmail/home/1-global/sieve
}
protocols = imap pop3 lmtp imap lmtp sieve
service auth {
  inet_listener {
port = 12345
  }
  unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
  }
}
service dict {
  unix_listener dict {
group = vmail
mode = 0600
user = vmail
  }
}
service imap-login {
  inet_listener imap_2 {
port = 10143
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
group = postfix
mode = 0600
user = postfix
  }
}
ssl_cert = 
}
protocol lda {
  mail_plugins = " quota acl sieve"
}
protocol imap {
  mail_max_userip_connections = 40
  mail_plugins = " quota acl imap_quota acl"
}
remote 192.168.1.116 {
  protocol imap {
disable_plaintext_auth = no
  }
}
remote 192.168.1.127 {
  protocol imap {
disable_plaintext_auth = no
  }
}



Re: Sieve filter imapflags with "flagvar" not working

2018-03-02 Thread Konstantinos Tsakiltzidis

well i posted the doveconf...
# Pigeonhole version 0.4.21 (92477967)


Sieve filter fileinto doesn't preserve flags

2018-03-02 Thread Konstantinos Tsakiltzidis

Using `fileinto` to move a mail into another mailbox removes flags

that have been set with a previous sieve filter with `addflag`.



# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.21 (92477967)
# OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.1 ext4
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_debug = yes
mail_location = maildir:/var/vmail/%d/%n
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 index ihave duplicate mime foreverypart extracttext

namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
  separator = .
  subscriptions = yes
  type = private
}
namespace modulus {
  list = children
  location = maildir:/var/vmail/%d/Public:INDEXPVT=~/public/indexes
  mailbox admin {
    auto = subscribe
  }
  mailbox support {
    auto = subscribe
  }
  mailbox telecoms {
    auto = subscribe
  }
  prefix = Public.
  separator = .
  subscriptions = yes
  type = public
}
passdb {
  driver = pam
}
plugin {
  acl = vfile
  mail_log_events = flag_change
  mail_log_fields = box flags uid
  sieve = ~/dovecot.sieve
  sieve_before = /var/vmail/global.sieve
  sieve_dir = ~/sieve
  sieve_global_dir = /var/vmail/sieve
}
protocols = " imap lmtp sieve lmtp"
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = mail
    mode = 0666
    user = postfix
  }
  unix_listener auth-userdb {
    group = mail
    mode = 0666
    user = vmail
  }
}
service imap-login {
  inet_listener imap {
    port = 0
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  process_min_avail = 0
  service_count = 1
  vsz_limit = 64 M
}
service managesieve {
  process_limit = 1024
}
ssl = required
ssl_cert =     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol lmtp {
  mail_plugins = " sieve acl"
  postmaster_address = postmas...@modulus.gr
  userdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
  }
  userdb {
    args = /etc/dovecot/dovecot-ldap-groups.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol doveadm {
  userdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
  }
  userdb {
    args = /etc/dovecot/dovecot-ldap-groups.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol sieve {
  mail_max_userip_connections = 10
  managesieve_implementation_string = Dovecot Pigeonhole
  managesieve_logout_format = bytes=%i/%o
  managesieve_max_line_length = 65536
  passdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
  }
  userdb {
    args = uid=vmail gid=mail home=/var/vmail/%d/%n
    driver = static
    name =
  }
}



Re: Sieve filter imapflags with "flagvar" not working

2018-03-02 Thread Larry Rosenman
That's the DOVECOT version, what's the PIGEONHOLE version?


-- 
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 214-642-9640 E-Mail: larry...@gmail.com
US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106
On 3/2/18, 11:22 AM, "Konstantinos Tsakiltzidis"  
wrote:

debian package Version: 1:2.2.33.2-1~bpo9+1


On 03/02/2018 07:13 PM, Larry Rosenman wrote:
> What version of pigeonhole are you using?  This was fixed recently.
>
>




Re: Sieve filter imapflags with "flagvar" not working

2018-03-02 Thread Konstantinos Tsakiltzidis

debian package Version: 1:2.2.33.2-1~bpo9+1


On 03/02/2018 07:13 PM, Larry Rosenman wrote:

What version of pigeonhole are you using?  This was fixed recently.






Re: Sieve filter imapflags with "flagvar" not working

2018-03-02 Thread Larry Rosenman
What version of pigeonhole are you using?  This was fixed recently.


-- 
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 214-642-9640 E-Mail: larry...@gmail.com
US Mail: 5708 Sabbia Drive, Round Rock, TX 78665-2106
On 3/2/18, 11:09 AM, "dovecot on behalf of Konstantinos Tsakiltzidis" 
 wrote:

Following the rfc5232, Sieve Email Filtering: Imap4flags Extension

the following filter doesn't work when the `"flagvar"` part is added

require "imap4flags";

if header :contains "X-Spam" "Yes" {

   setflag "flagvar" "spam";

}


removing the `"flagvar"` part works as expected


# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.21 (92477967)
# OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.1 ext4
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_debug = yes
mail_location = maildir:/var/vmail/%d/%n
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 index ihave duplicate mime foreverypart extracttext
namespace inbox {
   inbox = yes
   location =
   mailbox Drafts {
 special_use = \Drafts
   }
   mailbox Junk {
 special_use = \Junk
   }
   mailbox Sent {
 special_use = \Sent
   }
   mailbox "Sent Messages" {
 special_use = \Sent
   }
   mailbox Trash {
 special_use = \Trash
   }
   prefix =
   separator = .
   subscriptions = yes
   type = private
}
namespace modulus {
   list = children
   location = maildir:/var/vmail/%d/Public:INDEXPVT=~/public/indexes
   mailbox admin {
 auto = subscribe
   }
   mailbox support {
 auto = subscribe
   }
   mailbox telecoms {
 auto = subscribe
   }
   prefix = Public.
   separator = .
   subscriptions = yes
   type = public
}
passdb {
   driver = pam
}
plugin {
   acl = vfile
   mail_log_events = flag_change
   mail_log_fields = box flags uid
   sieve = ~/dovecot.sieve
   sieve_before = /var/vmail/global.sieve
   sieve_dir = ~/sieve
   sieve_global_dir = /var/vmail/sieve
}
protocols = " imap lmtp sieve lmtp"
service auth {
   unix_listener /var/spool/postfix/private/auth {
 group = mail
 mode = 0666
 user = postfix
   }
   unix_listener auth-userdb {
 group = mail
 mode = 0666
 user = vmail
   }
}
service imap-login {
   inet_listener imap {
 port = 0
   }
}
service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {
 group = postfix
 mode = 0600
 user = postfix
   }
}
service managesieve-login {
   inet_listener sieve {
 port = 4190
   }
   process_min_avail = 0
   service_count = 1
   vsz_limit = 64 M
}
service managesieve {
   process_limit = 1024
}
ssl = required
ssl_cert = 

Sieve filter imapflags with "flagvar" not working

2018-03-02 Thread Konstantinos Tsakiltzidis

Following the rfc5232, Sieve Email Filtering: Imap4flags Extension

the following filter doesn't work when the `"flagvar"` part is added

require "imap4flags";

if header :contains "X-Spam" "Yes" {

  setflag "flagvar" "spam";

}


removing the `"flagvar"` part works as expected


# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.21 (92477967)
# OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.1 ext4
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_debug = yes
mail_location = maildir:/var/vmail/%d/%n
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 index ihave duplicate mime foreverypart extracttext

namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
  separator = .
  subscriptions = yes
  type = private
}
namespace modulus {
  list = children
  location = maildir:/var/vmail/%d/Public:INDEXPVT=~/public/indexes
  mailbox admin {
    auto = subscribe
  }
  mailbox support {
    auto = subscribe
  }
  mailbox telecoms {
    auto = subscribe
  }
  prefix = Public.
  separator = .
  subscriptions = yes
  type = public
}
passdb {
  driver = pam
}
plugin {
  acl = vfile
  mail_log_events = flag_change
  mail_log_fields = box flags uid
  sieve = ~/dovecot.sieve
  sieve_before = /var/vmail/global.sieve
  sieve_dir = ~/sieve
  sieve_global_dir = /var/vmail/sieve
}
protocols = " imap lmtp sieve lmtp"
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = mail
    mode = 0666
    user = postfix
  }
  unix_listener auth-userdb {
    group = mail
    mode = 0666
    user = vmail
  }
}
service imap-login {
  inet_listener imap {
    port = 0
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  process_min_avail = 0
  service_count = 1
  vsz_limit = 64 M
}
service managesieve {
  process_limit = 1024
}
ssl = required
ssl_cert =     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol lmtp {
  mail_plugins = " sieve acl"
  postmaster_address = postmas...@modulus.gr
  userdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
  }
  userdb {
    args = /etc/dovecot/dovecot-ldap-groups.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol doveadm {
  userdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
  }
  userdb {
    args = /etc/dovecot/dovecot-ldap-groups.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol sieve {
  mail_max_userip_connections = 10
  managesieve_implementation_string = Dovecot Pigeonhole
  managesieve_logout_format = bytes=%i/%o
  managesieve_max_line_length = 65536
  passdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
  }
  userdb {
    args = uid=vmail gid=mail home=/var/vmail/%d/%n
    driver = static
    name =
  }
}



Sieve filter doesn't respect mailbox separator

2018-03-02 Thread Konstantinos Tsakiltzidis

namespace separator is '.',
this sieve script incorrectly tries to put the mail inside a mailbox
rather that beside it, for example if the mailbox is named
'example', the mail will be put in the path 'example/.Spam'
instead of 'example.Spam'

require ["fileinto"];
if header :contains "X-Spam" "yes" {
  fileinto "Spam";
}



# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.21 (92477967)
# OS: Linux 4.9.0-6-amd64 x86_64 Debian 9.1 ext4
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_debug = yes
mail_location = maildir:/var/vmail/%d/%n
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 index ihave duplicate mime foreverypart extracttext

namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
  separator = .
  subscriptions = yes
  type = private
}
namespace modulus {
  list = children
  location = maildir:/var/vmail/%d/Public:INDEXPVT=~/public/indexes
  mailbox admin {
    auto = subscribe
  }
  mailbox support {
    auto = subscribe
  }
  mailbox telecoms {
    auto = subscribe
  }
  prefix = Public.
  separator = .
  subscriptions = yes
  type = public
}
passdb {
  driver = pam
}
plugin {
  acl = vfile
  mail_log_events = flag_change
  mail_log_fields = box flags uid
  sieve = ~/dovecot.sieve
  sieve_before = /var/vmail/global.sieve
  sieve_dir = ~/sieve
  sieve_global_dir = /var/vmail/sieve
}
protocols = " imap lmtp sieve lmtp"
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = mail
    mode = 0666
    user = postfix
  }
  unix_listener auth-userdb {
    group = mail
    mode = 0666
    user = vmail
  }
}
service imap-login {
  inet_listener imap {
    port = 0
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  process_min_avail = 0
  service_count = 1
  vsz_limit = 64 M
}
service managesieve {
  process_limit = 1024
}
ssl = required
ssl_cert =     override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol lmtp {
  mail_plugins = " sieve acl"
  postmaster_address = postmas...@modulus.gr
  userdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
  }
  userdb {
    args = /etc/dovecot/dovecot-ldap-groups.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol doveadm {
  userdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/%n
  }
  userdb {
    args = /etc/dovecot/dovecot-ldap-groups.conf.ext
    driver = ldap
    name =
    override_fields = uid=vmail gid=mail home=/var/vmail/%d/Public/.%n 
mail=maildir:/var/vmail/%d/Public/.%n

  }
}
protocol sieve {
  mail_max_userip_connections = 10
  managesieve_implementation_string = Dovecot Pigeonhole
  managesieve_logout_format = bytes=%i/%o
  managesieve_max_line_length = 65536
  passdb {
    args = /etc/dovecot/dovecot-ldap-users.conf.ext
    driver = ldap
    name =
  }
  userdb {
    args = uid=vmail gid=mail home=/var/vmail/%d/%n
    driver = static
    name =
  }
}


sieve vacation alias handling problem

2018-03-02 Thread Karol Augustin
Hi,

I am using Dovecot LDA as LMTP renders envelope extension unusable.

The problem I have noticed is that when user has multiple aliases sieve
responds to all of them, not only to :addresses specified.

>From testing it seems that :addresses only adds addresses to the list of
"known" emails to check against. It is not limiting it.

As I understand, sieve should check if To: header is consistent with
addresses known to be users. But how Dovecot knows about aliases
assigned to the user?

>From my testing if header To: address is consistent with envelope To:
address the reply is fired. I have sieve_vacation_use_original_recipient
left at it's default value (no), so that shouldn't be the case. Now if
user addr...@example.com has alias al...@example.com specified, the
vacation reply will be sent to email addressed to al...@example.com,
which is weird, because this behavior should be enabled by switching
sieve_vacation_use_original_recipient to yes.

When user receives an email that was originally sent to his gmail
account (forwarded) there is no reply. If I add gmail address to
:addresses reply is generated as expected.

So my main question is if this is expected? I would like to enable only
delivery to primary address and to + extensions to that address by
default.

I think that it might be that Postfix is expanding aliases and passing
the final recipient (as to=) to dovecot. Then dovecot is using that
address to check for explicit delivery, but something fails, as this
address is obviously not in To: header. So it looks like orig_to has to
be used as well which should be disabled by
sieve_vacation_use_original_recipient?


My address is: ka...@augustin.pl, alias is: ca...@augustin.pl


Mar  2 12:37:32 mail dovecot: lda(ka...@augustin.pl): sieve:
msgid=<3ba0578a5f6b170e942b5bac1b19b...@posteo.net>: sent vacation
response to 
Mar  2 12:37:32 mail postfix/qmgr[4744]: 3zt82h4CG4z2xlw: from=<>,
size=732, nrcpt=1 (queue active)
Mar  2 12:37:32 mail dovecot: lda(ka...@augustin.pl): sieve:
msgid=<3ba0578a5f6b170e942b5bac1b19b...@posteo.net>: stored mail into
mailbox 'INBOX'
Mar  2 12:37:32 mail postfix/pipe[8793]: 3zt82f3x4xz2xmw:
to=, orig_to=, relay=dovecot,
delay=2.2, delays=2.2/0/0/0.06, dsn=2.0.0, status=sent (delivered via
dovecot service)


Forward from from gmail:

Mar  2 11:38:19 mail postfix/qmgr[4744]: 3zt6kL1yF7z2xgg:
from=, size=5831, nrcpt=1
(queue active)
Mar  2 11:38:19 mail dovecot: lda(ka...@augustin.pl): sieve:
msgid=: discarding vacation
response for implicitly delivered message; no known (envelope) recipient
address found in message headers (recipient=, and
additional `:addresses' are specified)
Mar  2 11:38:19 mail dovecot: lda(ka...@augustin.pl): sieve:
msgid=: stored mail into
mailbox 'INBOX'
Mar  2 11:38:19 mail postfix/pipe[5362]: 3zt6kL1yF7z2xgg:
to=, relay=dovecot, delay=1.3, delays=1.2/0/0/0.05,
dsn=2.0.0, status=sent (delivered via dovecot service)


from my master.cf:
dovecot unix - n n - - pipe
   flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -f
${sender} -a ${original_recipient} -d ${user}@${nexthop}



Thanks,
Karol

-- 
Karol Augustin
ka...@augustin.pl
http://karolaugustin.pl/
+353 85 775 5312


Panic: file smtp-address.c: line 530 (smtp_address_write): assertion failed: (smtp_char_is_qpair(*p))

2018-03-02 Thread Ralf Hildebrandt
I have an email which cannot be delivered using LMTP:

Mar  2 15:26:54 mail-cbf dovecot: 
lmtp(backup@backup.invalid)<29736>: Panic: file 
smtp-address.c: line 530 (smtp_address_write): assertion failed: 
(smtp_char_is_qpair(*p))
Mar  2 15:26:54 mail-cbf dovecot: 
lmtp(backup@backup.invalid)<29736>: Error: Raw 
backtrace: /usr/lib/dovecot/libdovecot.so.0(+0xc6aca) [0x7f7fb50d3aca] -> 
/usr/lib/dovecot/libdovecot.so.0(+0xc6bad) [0x7f7fb50d3bad] ->
/usr/lib/dovecot/libdovecot.so.0(i_fatal+0) [0x7f7fb5045721] -> 
/usr/lib/dovecot/libdovecot.so.0(smtp_address_write+0x21d)
[0x7f7fb504931d] -> /usr/lib/dovecot/libdovecot.so.0(smtp_address_encode+0x21)
[0x7f7fb5049411] -> /usr/lib/dovecot/libdovecot-lda.so.0(+0x3774)
[0x7f7fb56d0774] -> /usr/lib/dovecot/libdovecot-lda.so.0(+0x3abf)
[0x7f7fb56d0abf] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(mailbox_save_finish+0x7c)
[0x7f7fb53c858c] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(mail_storage_copy+0x104)
[0x7f7fb53baeb4] -> /usr/lib/dovecot/libdovecot-storage.so.0(mdbox_copy+0x46)
[0x7f7fb53e13f6] -> /usr/lib/dovecot/libdovecot-lda.so.0(+0x3999)
[0x7f7fb56d0999] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0x48956)
[0x7f7fb53c8956] -> 
/usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver_save+0x1ac)
[0x7f7fb56d12ac] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0x1f6)
[0x7f7fb56d1916] -> dovecot/lmtp(lmtp_local_data+0x610)
[0x560dfd665dc0] -> dovecot/lmtp(cmd_data_continue+0x233)
[0x560dfd664b53] -> /usr/lib/dovecot/libdovecot.so.0(+0x4a6e0)
[0x7f7fb50576e0] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x69)
[0x7f7fb50eb649] -> 
/usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run_internal+0x109)
[0x7f7fb50ecf29] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0x52)
[0x7f7fb50eb752] -> /usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x38)
[0x7f7fb50eb968] -> /usr/lib/dovecot/libdovecot.so.0(master_service_run+0x13)
[0x7f7fb50682a3] -> dovecot/lmtp(main+0x23d) [0x560dfd663c3d] -> 
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)
[0x7f7fb4c63830] -> dovecot/lmtp(_start+0x29) [0x560dfd663d79]
Mar  2 15:26:55 mail-cbf dovecot: 
lmtp(backup@backup.invalid)<29736>: Fatal: master: 
service(lmtp): child 29736 killed with signal 6 (core dumped)

Using  dovecot 2:2.3.0.1-6 packages on Ubuntu 16.04

The address causing the error is:

From: =?utf-8?Q?Dorit_M=C3=BCller?= 

Note the "umlaut" in the email address... :)
-- 
Ralf Hildebrandt
  Geschäftsbereich IT | Abteilung Netzwerk
  Charité - Universitätsmedizin Berlin
  Campus Benjamin Franklin
  Hindenburgdamm 30 | D-12203 Berlin
  Tel. +49 30 450 570 155 | Fax: +49 30 450 570 962
  ralf.hildebra...@charite.de | https://www.charite.de



Re: Plugin charset_alias

2018-03-02 Thread Teemu Huovila


On 02.03.2018 09:38, MRob wrote:
> On 2018-03-01 22:59, John Woods wrote:
>> Hey Everyone,
>>
>>     We are getting a compile error for Dovecot 2.2.34 on Solaris 11.3
>> x86, using Solaris Studio 12.6 compiler, and it doesn't occur with
>> Dovecot 2.2.33.
>>
>>> Making all in charset-alias
> 
> Can someone easily explain what the usage of this plugin is? Maybe example 
> when it is helpful?
There is a short explanation at https://wiki2.dovecot.org/Plugins/CharsetAlias

It is intended for mapping charactersets to work around some e.g. Windows 
specific letters being lost when Dovecot converts mail to UTF8 using iconv.

br,
Teemu


Autoexpunge of lazy_expunge namespace

2018-03-02 Thread Angel L. Mateo

Hi,

I'm using autoexpunge to clean my users' Trash and Spam mailboxes.

	But I'm also using lazy_expunge to keep a copy of deleted messages. Is 
there any to configure lazy_expunge namespace to be autoexpunged too?


	My lazy_expunge configuration is the "1 Namespace" described at 
https://wiki2.dovecot.org/Plugins/Lazyexpunge


--
Angel L. Mateo Martínez
Sección de Telemática
Área de Tecnologías de la Información
y las Comunicaciones Aplicadas (ATICA)
http://www.um.es/atica
Tfo: 868889150
Fax: 86337