Mit global.sieve ein Mail in eine public Mailbox schieben
Stephan Bosch
stephan at rename-it.nl
Fr Jan 11 13:21:19 CET 2019
Op 27-12-2018 om 2:21 schreef Jakobus Schürz:
> Hi Leute!
>
> Ich möchte gerne mit einem global.sieve-Script ein Mail in eine Public
> Mailbox schieben. Und zwar, wenn das Email an eine bestimmte Adresse
> geht (public at mydomain.example), dann soll dieses Mail in den Public
> Imap-Folder /All/Public geschoben werden.
>
> Ich habe dazu das File /etc/dovecot/sieve/global.sieve mit folgendem Inhalt:
[...]
> Dieses Sievescript ist natürlich mit sievec compilliert und liegt im
> selben Verzeichnis.
>
> Sende ich nun ein Email von einer externen Adresse an
> public.all at mydomain.example, dann landet es in der Mailbox meines Users
> für den diese Email-Adresse ein Alias ist. Ändere ich hingegen die Zeile
>
> { fileinto :create "All/Public"; stop;} in
>
> { fileinto :create "INBOX/BLA/Public"; stop;}
>
> Dann wird diese Mailbox unter INBOX erzeugt und das Email landet dort.
> Der Sieve-Filter greift also, kann aber das Mail nicht in die
> Public-Mailbox zustellen.
>
> Diese Public-Mailbox ist aber für alle User in Thunderbird sichtbar, und
> jeder User kann dort Mail hinverschieben, jeder User hat eigene "Seen-Flags"
>
> Das spannende ist, bei einem User werden All und All/Public mit doveadm
> mailbox list -u user.name angezeigt, beim anderen User hingegen nicht.
>
>
> Ich steh mit meinem Latein am Ende. Hat vielleicht von euch jemand eine
> Idee?
Ich sehe Du hast mail_debug aktiviert. Was ist davon im Log zu sehen?
Sieve sollte detailliert beschreiben wieso zustellen in All/Public nicht
gelingt.
Gruß,
Stephan.
> lg jakob
>
> PS: Hier noch meine Dovecot-config
>
>
> # 2.3.4 (0ecbaf23d): /etc/dovecot/dovecot.conf
> # Pigeonhole version 0.5.4 (60b0f48d)
> # OS: Linux 4.9.0-8-amd64 x86_64 Debian 9.6 ext4
> # Hostname: mail.vpn
> auth_mechanisms = plain login cram-md5 digest-md5
> auth_socket_path = /var/run/dovecot/auth-userdb
> disable_plaintext_auth = no
> first_valid_uid = 1000
> imap_capability = +XDOVECOT +SPECIAL-USE
> imap_client_workarounds = tb-extra-mailbox-sep
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> listen = *, ::1
> login_trusted_networks = 127.0.0.1/8 192.168.0.0/24 192.168.1.0/24
> 172.17.0.0/24 172.18.0.0/24
> mail_debug = yes
> mail_gid = vmail
> mail_home = /var/mail/%u
> mail_location =
> maildir:/var/mail/%u/Maildir:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/Maildir/%u:CONTROL=/var/lib/dovecot/db/control/Maildir/%u
> mail_plugins = zlib quota acl listescape mail_log notify virtual fts
> fts_lucene
> mail_privileged_group = vmail
> mail_server_admin = mailto:jakob at mydomain.example
> mail_shared_explicit_inbox = yes
> mail_uid = vmail
> 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 Archiv {
> hidden = no
> inbox = no
> list = children
> location =
> maildir:/var/mail/archiv/%u/:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/archiv/%u:CONTROL=/var/lib/dovecot/db/control/archiv/%u
> mailbox Archiv {
> auto = subscribe
> special_use = \Archive
> }
> mailbox Archive/Archiv {
> auto = no
> special_use = \Archive
> }
> mailbox Archives/Archiv {
> auto = no
> special_use = \Archive
> }
> mailbox "Gesamtes Archiv" {
> auto = no
> special_use = \Archive
> }
> prefix = Archiv/
> separator = /
> subscriptions = no
> type = private
> }
> namespace Geteilt {
> hidden = no
> inbox = no
> list = children
> location =
> maildir:/var/mail/%%u/Maildir:LAYOUT=fs:INDEXPVT=/var/lib/dovecot/db/indexes/shared/%u/%%u:INDEX=/var/lib/dovecot/db/indexes/shared/%u/%%u
> prefix = Geteilt/%%n/
> separator = /
> subscriptions = no
> type = shared
> }
> namespace Synoptic {
> hidden = no
> ignore_on_failure = no
> list = children
> location =
> virtual:/var/mail/virtual/synoptic:INDEX=/var/lib/dovecot/db/indexes/virtual/synoptic/%u
> mailbox AKTUELL {
> auto = subscribe
> }
> mailbox Markierte {
> auto = subscribe
> }
> mailbox Neue {
> auto = subscribe
> }
> mailbox Rechnungen {
> auto = subscribe
> }
> mailbox WICHTIG {
> auto = subscribe
> }
> prefix = Synoptic/
> separator = /
> subscriptions = no
> }
> namespace All {
> list = children
> location =
> maildir:/var/mail/public/all/:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/public/all/%u:INDEXPVT=/var/lib/dovecot/db/indexes/public/all/%u
> mailbox Public {
> auto = subscribe
> }
> mailbox Versicherungen {
> auto = subscribe
> }
> mailbox something {
> auto = subscribe
> }
> prefix = All/
> separator = /
> subscriptions = no
> type = public
> }
> namespace inbox {
> hidden = no
> inbox = yes
> location =
> mailbox "Deleted Messages" {
> auto = no
> autoexpunge = 30 days
> special_use = \Trash
> }
> mailbox Drafts {
> auto = no
> special_use = \Drafts
> }
> mailbox Entwürfe {
> auto = no
> special_use = \Drafts
> }
> mailbox "Gelöschte Elemente" {
> auto = no
> autoexpunge = 30 days
> special_use = \Trash
> }
> mailbox "Gelöschte Objekte" {
> auto = no
> autoexpunge = 30 days
> special_use = \Trash
> }
> mailbox Gesendet {
> auto = no
> special_use = \Sent
> }
> mailbox "Gesendete Elemente" {
> auto = no
> special_use = \Sent
> }
> mailbox "Gesendete Objekte" {
> auto = no
> special_use = \Sent
> }
> mailbox Junk {
> auto = subscribe
> autoexpunge = 30 days
> special_use = \Junk
> }
> mailbox Mistkübel {
> auto = no
> autoexpunge = 30 days
> special_use = \Trash
> }
> mailbox Papierkorb {
> auto = no
> autoexpunge = 30 days
> special_use = \Trash
> }
> mailbox Sent {
> auto = subscribe
> special_use = \Sent
> }
> mailbox "Sent Messages" {
> auto = no
> special_use = \Sent
> }
> mailbox Spam {
> auto = no
> autoexpunge = 30 days
> special_use = \Junk
> }
> mailbox Trash {
> auto = no
> autoexpunge = 30 days
> special_use = \Trash
> }
> prefix = INBOX/
> separator = /
> subscriptions = no
> type = private
> }
> namespace subscriptions {
> hidden = yes
> list = no
> location =
> prefix =
> subscriptions = yes
> }
> passdb {
> args = /etc/dovecot/dovecot-ldap-passdb-user.conf.ext
> driver = ldap
> name = user
> }
> passdb {
> args = /etc/dovecot/dovecot-ldap-passdb-admin.conf.ext
> driver = ldap
> name = admin
> }
> plugin {
> acl = vfile:/etc/dovecot/dovecot-acl:cache_secs=300
> acl_shared_dict = file:/var/lib/dovecot/db/shared-mailboxes.db
> fts = lucene
> fts_autoindex = yes
> fts_autoindex_max_recent_msgs = 80
> fts_index_timeout = 90
> fts_lucene = whitespace_chars=@. normalize no_snowball
> imapsieve_mailbox1_before = file:/etc/dovecot/sieve/report-spam.sieve
> imapsieve_mailbox1_causes = COPY
> imapsieve_mailbox1_name = INBOX/Junk
> imapsieve_mailbox2_before = file:/etc/dovecot/sieve/report-ham.sieve
> imapsieve_mailbox2_causes = COPY
> imapsieve_mailbox2_from = INBOX/Junk
> imapsieve_mailbox2_name = *
> mail_home = /var/mail/%u
> mail_log_events = delete undelete expunge copy mailbox_delete
> mailbox_rename
> mail_log_fields = uid box msgid subject from flags
> setting_name = sieve, managedsieve
> sieve = file:/var/mail/%u/sieve/;active=/var/mail/%u/sieve/%u.sieve
> sieve_after = /etc/dovecot/sieve/after.d/
> sieve_before = /etc/dovecot/sieve/global.sieve
> sieve_global_dir = /etc/dovecot/sieve/
> sieve_global_extensions = +vnd.dovecot.pipe
> sieve_pipe_bin_dir = /etc/dovecot/sieve
> sieve_plugins = sieve_imapsieve sieve_extprograms
> sieve_trace_dir = /var/log/dovecot/sieve/trace
> sieve_trace_level = matching
> }
> postmaster_address = postmaster at localhost
> protocols = " imap lmtp lmtp sieve pop3 sieve"
> service anvil {
> client_limit = 199999
> unix_listener anvil-auth-penalty {
> mode = 0700
> }
> }
> service auth {
> unix_listener auth-client {
> group = vmail
> mode = 0666
> user = Debian-exim
> }
> unix_listener auth-userdb {
> group = vmail
> mode = 0666
> user = vmail
> }
> }
> service imap-login {
> inet_listener imap {
> port = 143
> }
> inet_listener imaps {
> port = 993
> ssl = yes
> }
> process_min_avail = 1
> service_count = 1
> }
> service imap-postlogin {
> executable = script-login -d /etc/dovecot/posix_groups.sh
> "/etc/dovecot/acl_groups.py %u"
> }
> service imap {
> executable = imap postlogin
> process_limit = 1024
> vsz_limit = 400 M
> }
> service lmtp {
> user = Debian-exim
> vsz_limit = 400 M
> }
> service postlogin {
> executable = script-login -d /etc/dovecot/acl_groups.py
> unix_listener postlogin {
> group = vmail
> user = vmail
> }
> }
> service stats {
> unix_listener stats-writer {
> group = vmail
> mode = 0600
> user = vmail
> }
> }
> ssl = required
> ssl_cert = </etc/dovecot/ssl/certs/dovecot.crt
> ssl_cipher_list = ALL:!ADH:!LOW:!SSLv2:!SSLv3:!EXP:!aNULL:+HIGH:+MEDIUM
> ssl_dh = # hidden, use -P to show it
> ssl_key = # hidden, use -P to show it
> userdb {
> args = /etc/dovecot/dovecot-ldap-userdb.conf.ext
> default_fields = home=/var/mail/%u uid=vmail gid=vmail
> driver = ldap
> }
> verbose_proctitle = yes
> protocol lmtp {
> auth_username_format = %Ln
> mail_plugins = zlib quota acl listescape mail_log notify virtual fts
> fts_lucene quota sieve acl
> }
> protocol lda {
> info_log_path =
> log_path =
> mail_plugins = zlib quota acl listescape mail_log notify virtual fts
> fts_lucene quota sieve acl
> }
> protocol imap {
> mail_max_userip_connections = 30
> mail_plugins = zlib quota acl listescape mail_log notify virtual fts
> fts_lucene imap_quota imap_acl imap_sieve
> }
>
Mehr Informationen über die Mailingliste Dovecot