dovecot special_use \ALL

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

dovecot special_use \ALL

Beitrag von scientific » 20.10.2017 22:04:41

Hi!

Ich bin dabei meinen Mailserver aufzupimpen. Einerseits eine Mailserverseitige Suche, und andererseits einen virtuellen Folder, worin alle Emails gesammelt sind.
In diesem Howto (https://documentation.open-xchange.com/ ... _mail.html), welches sich eng an das Dovecot-Wiki hält findet man unter 1.2 Configuring the all-messages folder https://documentation.open-xchange.com/ ... ges-folder eine Anleitung für so einen virtuellen Folder.

Ich habe diese Konfiguration mit eigenem Namspace (abweichend zum Dovecot-Wiki und der Default-Config wo es einen eigene Mailbox unter INBOX gibt) übernommen.

Code: Alles auswählen

doveadm mailbox list -u scientific
liefert mir dann auch schön diese Virtuelle Mailbox

Code: Alles auswählen

INBOX$Trash
INBOX$Wichtig
INBOX$INBOX$Sent
INBOX$INBOX$Papierkorb
INBOX$INBOX$Drafts
INBOX$INBOX$Junk
INBOX$Entwürfe
shared
Virtual
Virtual$All
Mailarchiv
Mailarchiv$incoming
Mailarchiv$outgoing
Wie man sieht, die Virtual$All Mailbox ist da. Ich habe "$" als Separator, da dieser am wenigsten Probleme mit Thunderbird und dem LAYOUT=fs macht.
Thunderbird und Outlook Zeigen mir auch diese Mailboxen an, und ich kann sie auch abonnieren. Jedoch sind sie leer.

Code: Alles auswählen

# dovecot -n
# 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.16 (fed8554)
# OS: Linux 4.12.0-0.bpo.1-amd64 x86_64 Debian 9.1 btrfs
auth_mechanisms = plain login
auth_socket_path = /var/run/dovecot/auth-userdb
first_valid_uid = 1000
imap_capability = +XDOVECOT
imap_client_workarounds = tb-extra-mailbox-sep
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_debug = yes
mail_location = maildir:/var/mail/%u/Maildir:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/%u:CONTROL=/var/lib/dovecot/db/control/%u
mail_plugins = zlib quota acl listescape mail_log notify virtual
mail_privileged_group = 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
namespace {
  hidden = no
  ignore_on_failure = no
  inbox = no
  list = children
  location = maildir:%%h/Maildir:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/%u/shared/%%u:INDEXPVT=%h/shared:CONTROL=/var/lib/dovecot/db/control/%u/shared
  prefix = shared$%%u$
  separator = $
  subscriptions = no
  type = shared
}
namespace {
  hidden = no
  inbox = no
  list = children
  location = maildir:/var/mail/mailarchiv/%u/:LAYOUT=fs:INDEX=/var/lib/dovecot/db/indexes/mailarchiv/%u:INDEXPVT=%h/mailarchiv
  mailbox incoming {
    auto = create
  }
  mailbox outgoing {
    auto = create
  }
  prefix = Mailarchiv$
  separator = $
  subscriptions = no
  type = public
}
namespace {
  list = children
  location = maildir:/var/mail/public/:LAYOUT=fs:INDEXPVT=%h/public
  prefix = Roseggergasse$
  separator = $
  subscriptions = no
  type = public
}
namespace Virtual {
  hidden = no
  list = children
  location = virtual:/var/mail/virtual:INDEX=MEMORY
  mailbox All {
    comment = All my messages
    special_use = \All
  }
  prefix = Virtual$
  separator = $
  subscriptions = no
}
namespace inbox {
  hidden = no
  inbox = yes
  location = 
  mailbox Archiv {
    auto = no
    special_use = \Archive
  }
  mailbox Archive {
    auto = no
    special_use = \Archive
  }
  mailbox Archives {
    auto = create
    special_use = \Archive
  }
  mailbox "Deleted Messages" {
    auto = no
    special_use = \Trash
  }
  mailbox Drafts {
    auto = create
    special_use = \Drafts
  }
  mailbox Entwürfe {
    auto = no
    special_use = \Drafts
  }
  mailbox "Gelöschte Elemente" {
    auto = no
    special_use = \Trash
  }
  mailbox "Gelöschte Objekte" {
    auto = no
    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 Important {
    auto = no
  }
  mailbox Junk {
    auto = subscribe
    autoexpunge = 10 days
    special_use = \Junk
  }
  mailbox Mistkübel {
    auto = no
    special_use = \Trash
  }
  mailbox Papierkorb {
    auto = no
    special_use = \Trash
  }
  mailbox Sent {
    auto = create
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = no
    special_use = \Sent
  }
  mailbox Spam {
    auto = no
    special_use = \Junk
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  mailbox Wichtig {
    auto = create
  }
  mailbox virtual$Flagged {
    comment = All my flagged messages
    special_use = \Flagged
  }
  prefix = INBOX$
  separator = $
  subscriptions = no
}
namespace subscriptions {
  hidden = yes
  list = no
  location = 
  prefix = 
  subscriptions = yes
}
passdb {
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
plugin {
  acl = vfile:/etc/dovecot/dovecot-acl
  acl_anyone = allow
  acl_shared_dict = file:/var/mail/shared-mailboxes
  fts =  lucene
  fts_autoindex =  yes
  fts_autoindex_max_recent_msgs =  80
  fts_decoder =  decode2text.sh
  fts_index_timeout =  90
  fts_lucene =  whitespace_chars=@. normalize no_snowball
  setting_name = sieve, managedsieve
  sieve = file:/var/spool/dovecot/sieve/%n;active=/var/spool/dovecot/sieve/%n/%n.sieve
}
postmaster_address = postmaster@localhost
protocols = " imap lmtp sieve sieve"
service auth {
  unix_listener auth-client {
    group = vmail
    mode = 0660
    user = dovecot
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0660
    user = vmail
  }
}
service lmtp {
  user = Debian-exim
}
ssl = required
ssl_cert = </etc/dovecot/dovecot.crt
ssl_key =  # hidden, use -P to show it
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}
verbose_proctitle = yes
protocol lmtp {
  mail_plugins = zlib quota acl listescape mail_log notify virtual quota sieve acl
}
protocol lda {
  mail_plugins = zlib quota acl listescape mail_log notify virtual quota sieve acl
}
protocol imap {
  mail_max_userip_connections = 10
  mail_plugins = zlib quota acl listescape mail_log notify virtual imap_quota imap_acl
}
Die für die virtuelle Mailbox entsprechenden Dateien enthalten

Code: Alles auswählen

# cat /var/mail/virtual/All/dovecot-virtual 
*
all
Ich nehme an, ich benötige auch ACLs, damit ich die auch auf die virtuellen Mailbox zugreifen kann. Daher ist in

Code: Alles auswählen

# cat /etc/dovecot/dovecot-acl 
Virtual$ authenticated lrws
Virtual$All authenticated lrws
Virtual$All$* authenticated lrws
gesetzt. Zusätzlich habe ich noch in /var/mail/virtual/ und /var/mail/virtual/All noch je ein File dovecot-acl mit dem Inhalt

Code: Alles auswählen

user=scientific lrws
angelegt, welche alle die Besitzverhältnisse vmail:vmail haben, wie auch die restlichen Verzeichnisse und Files in /var/mail.

Hat jemand eine Idee, was ich falsch mache?

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: dovecot special_use \ALL

Beitrag von scientific » 21.10.2017 02:31:57

Ich habe jetzt herausgefunden, dass die Datei /var/mail/virtual/All/dovecot-virtual unbedingt einen Eintrag benötigt, der anweist, wohin Email gespeichert werden sollen, die in diesen virtuellen Folder abgelegt werden. DANN werden die Emails lt. Filter auch angezeigt.

Ich habe jetzt das File so angepasst

Code: Alles auswählen

!INBOX
*
-INBOX/Trash
-INBOX/Trash/*
-INBOX/Junk
-INBOX/Junk/*
  all
Statt "all" kann man auch "recent" oder "unseen" schreiben. Dann werden entsprechend neu eingetroffene oder nur ungesehene Email angezeigt.

Ich bin da jetzt bloß durch Zufall draufgekommen, weil ich ein anderes Konfigbeispiel ausprobiert habe und da gab es diesen Eintrag... Und siehe da, dort wurden jetzt die Mails angezeigt.
Man kann anscheinend auch noch weitere Filter verwenden, jedoch hab ich die noch nicht ganz kapiert.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: dovecot special_use \ALL

Beitrag von scientific » 25.10.2017 20:38:36

Das geht noch weiter...

Ich hab mittlerweile mehr dazu rausgefunden, dazu später mehr.

Ich fand in meinem Posteingang im Namespace "INBOX$" immer wieder einen zusätzlichen Folder "INBOX" vor, der Drafts, Trash usw enthielt.
Der Pfad im Namespace ist also "INBOX$INBOX$Trash". Ein Inbox zuviel.

Ich hatte K9-Mail auf Android im Verdacht, da dies diese 4 special_use-Folder immer mit einem zusätzlichen "INBOX" anzeigt, obwohl Trash & Co sowieso schon in INBOX sind.

In Thunderbird werden zwei Folder mit "Entwürfe" angezeigt, und einer mit Archiv und ein Archive.

Ich vermute dass die Konfig in 15-mailboxes.conf nicht stimmt.

So habe ich 4 virtuelle Folder für Virtual$INBOX$Trash, Sent, Drafts und Spam angelegt, worin ich mit obiger Konfig die tatsächlichen zugehörigen Mailboxen gemapped habe.

Jetzt scheint sowohl TB als auch Outlook als auch K9-Mail die Special_use-Folder korrekt zu erkennen und verwenden.

In K9-Mail verwende ich nur den Namespace Virtual mit den Mailboxen "All", "Unseen" und "New", da ich so viele Folder und Subfolder habe, die am Smartphone nicht zu bewältigen sind. Da sind Sammelfolder viel praktikabler.
Am TB kann ich die selben Mails dann in die vielen Subfolder von Sieve vorsortiert ansehen... Und so den Überblick bewahren.

Bin sehr zufrieden mit dem Setup.

Einziger nachteil, am TB und in Outlook wird der Namespace Virtual parallel angezeigt. Da kommen die 4 special_use-Mailboxen für k9-Mail nun doppelt vor. Besser aber virtuell, als real mit mehrfachem gesplittetem Mailbestand.

Dovecot ist schon ziemlich geil, muss ich sagen.

Lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: dovecot special_use \ALL

Beitrag von scientific » 25.10.2017 20:55:59

Meine config liefere ich noch nach.

Übrigens, ich habe mir in dovecot einen Authenticator mit Userdb-File gebaut. Diesen nutze ich direkt auch von exim für Amauthentifiziertes SMTP (nur dieses ist erlaubt) und ich nutze den auch mit radicale. Dafür gibts ein plugin radicale_imap.

Damit sind die Mailuser völlig unabhängig von den Unix-Usern.
Für alle Dienste gibts genau ein Passwort an einer Stelle konfiguriert.

Da ich ohne Domain bei den Usernamen arbeite, können dennoch Daemons Emails an z. B. scientific@localhost versenden und der Unixuser kriegt das Mail. Userscripte können ebenfalls emails mit mail(x) versenden, ohne weitere FROM:adresse, und werden Vom Emailsystem weitergeleitet - sofern ein Mailuser mit selbem Namen wie der Unixuser besteht.

dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten