Frage, Dovecot namespace korrekt setzen

Domi

Member
Hallo Leute, nach längerer Zeit und ein wenig suchen (am Wochenende) bin ich doch wieder auf ein Thema gestoßen, welches ich so nicht direkt gelöst bekomme. Dovecot kann ja die Ordner / Subscriptions an die Clients übergeben. Ich hab dieses vor Jahren schon mal angepasst, weil ich Ordnerfreigaben ermöglichen wollte.

Nun geht es aber darum, dass ich gerne (wenn möglich) über die "namespace" die korrekten Ordner an die Clients (Thunderbird, K9-Mail, Outlook etc.) übergeben würde. Bei mir persönlich kann ich auf dem Smartphone im K9-Mail die Ordner händisch korrigieren, wobei es toll wäre wenn dieser sich die Ordner schon autonom "organisieren" kann. Sprich, Drafts = Entwürfe, Send = Gesendet etc.

Thunderbird bekommt das von selbst sehr gut hin, Oulook legt gerne "Gesendete Elemente" und das iPhone eines Bekannten macht glaube ich auch irgend eine eigene Wurst. Nun habe ich einen mit ISPconfig betriebenen Server, der alles in die dovecot.conf rein schreibt, was aber an sich auch kein Problem ist, denn es funktioniert ja.

Ich habe also nachträglich folgendes in die dovecot.conf hinein geschrieben,
Code:
namespace inbox {
  # the namespace prefix isn't added again to the mailbox names.
  #prefix = INBOX.
  inbox = yes
  # ...

  mailbox Drafts {
    auto = no # Never created automatically
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe # Automatically created and subscribed
    special_use = \Junk
  }
  mailbox Spam {
    auto = no
    special_use = \Junk
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = no
    special_use = \Sent
  }
  mailbox "Archives" {
    auto = create # Automatically created, but no automatic subscription
    special_use = \Archive
  }
  mailbox Archive {
    auto = no
    special_use = \Archive
  }
}

Kann man dieses noch irgendwie optimieren, dass diese "Zuordnung" besser funktioniert? Soweit ich dass noch weiß, war vor X Jahren mal das Thema, dass sich Outlook nicht direkt an irgend welche RFC Normen hält und das auch nicht immer zu 100% funktioniert, aber wenn man dies über die namespace ein wenig optimieren kann, wäre ich über eure Ansätze / Lösungen dankbar. Denn vielleicht kann ich dies ja nach gefühlt 14 Jahren mal schöner gestallten :D

Gruß, Domi

Nachtrag: Kaum hier gepostet, ein wenig was ganz anderes gemacht und dann diesen Post im Debian Forum gefunden. Ich versuche mich daran mal zu orientieren. Wenn es klappt, gibt es ein Feedback :)
 
Last edited:
Moin... ich anteworte einmal selbst auf mein Thema und habe dieses nun aktuell wie folgt gelöst.

Code:
root@srvxx:~# doveconf -a
# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
...
namespace inbox {
    disabled = no
    hidden = no
    ignore_on_failure = no
    inbox = yes
    list = yes
    location =
    mailbox Archiv {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Archive
    }
    mailbox Archive {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Archive
    }
    mailbox Archives {
        auto = create
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Archive
    }
    mailbox "Deleted Messages" {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Trash
    }
    mailbox Drafts {
        auto = create
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Drafts
    }
    mailbox Entwürfe {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Drafts
    }
    mailbox "Gelöschte Elemente" {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Trash
    }
    mailbox "Gelöschte Objekte" {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Trash
    }
    mailbox Gesendet {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Sent
    }
    mailbox "Gesendete Elemente" {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Sent
    }
    mailbox "Gesendete Objekte" {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Sent
    }
    mailbox Junk-E-Mail {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Junk
    }
    mailbox Junk {
        auto = subscribe
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Junk
    }
    mailbox Papierkorb {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Trash
    }
    mailbox Sent {
        auto = subscribe
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Sent
    }
    mailbox "Sent Messages" {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Sent
    }
    mailbox Spam {
        auto = no
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Junk
    }
    mailbox Trash {
        auto = subscribe
        autoexpunge = 0
        autoexpunge_max_mails = 0
        comment =
        driver =
        special_use = \Trash
    }
    order = 0
    prefix =
    separator =
    subscriptions = yes
    type = private
}

Damit sieht es erst einmal gut aus und auch ein separat eingerichtetes Office 2019 schien darauf gehört zu haben. Vielleicht interessiert es ja auch andere Admins, die das nicht schon längst wussten :)

Falls sich jemand denkt "hey, dass kann man noch besser gestallten", höre ich mir dieses aber auch gerne an :)

Gruß, Domi
 
Normalerweise reicht je ein Standard-"special_use":
Code:
namespace inbox {
  inbox = yes
  mailbox Archive {
    auto = subscribe
    special_use = \Archive
  }
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
}
IMAP-Clients sind dann für die korrekte lokalisierte Darstellung der Mailbox in ihrem User-Interface zuständig.
Damit ist es egal, ob der IMAP-Client nun mit EN-Sprachpaket oder mit DE-Sprachpaket oder FR-Sprachpaket oder xx-Sprachpaket genutzt wird, in der Benutzeroberfläche wird immer die entsprechende lokalisierte Sprachversion des Mailboxnamen angezeigt.

Hoffe das war halbwegs verständlich ;)
 
IMAP-Clients sind dann für die korrekte lokalisierte Darstellung der Mailbox in ihrem User-Interface zuständig.
Uns das ist genau das Problem, des gibt einige IMAP-Clients, die das nicht machen - also "Broken" sind. Wenn man nur einen Mail-Client einsetzt, ist es relativ egal, aber vielen nutzen mittlerweile mehre, z.B. Smartphone und Laptop, da kann es Sinn machen und den Support-Aufwand erheblich reduzieren.
 
z.B. Smartphone und Laptop
Das Problem hat ein Bekannter von mir. Auf dem einen PC ist Thunderbird, auf seinem Notebook ist Outlook und sein iPhone verwendet (wenn ich mich jetzt nicht irre) wieder eine andere Struktur.

Thunderbird hat verstanden, dass '\Sent' für gesendete Nachrichten verwendet werden soll. Sein iPhone hat (glaube ich) '\Sent Messages' angelegt und Outlook verwendet 'Gesendete Elemente' oder so etwas. Wenn er nun eine gesendete E-Mail sucht, muss er immer alle drei Ordner abklappern.

Wenn ich mich nicht irre, könnte man auf dem iPhone sogar einstellen, dass für '\Sent' auch wirklich das '\Sent' Verzeichnis genutzt werden soll. Outlook kann das (glaube ich) nicht, oder konnte es in einigen Versionen nicht und machte wieder sein eigenes Ding.

Daher hatte ich es so verstanden, dass bei folgendem Parameter...
Code:
mailbox "Gesendete Elemente" {
    auto = no
    autoexpunge = 0
    autoexpunge_max_mails = 0
    comment =
    driver =
    special_use = \Sent
}

Outlook (wenn es sich daran hält) die gesendeten E-Mails (die in "Gesendete Elemente" landen sollen) physikalisch in Ordner '\Sent' schiebt. Denn "Gesendete Elemente" wäre so etwas wie eine Verknüpfung oder Symlink zu '\Sent'.

Vorausgesetzt, ich hab das Prinzip korrekt verstanden.

Gruß, Domi
 
Du hast das Prinzip im Prinzip schon richtig verstanden ;)
Nur brauchst Du die "Symlinks" nicht selbst in der Konfiguration anlegen, denn jeder IMAP-Client macht dies selbst. Entscheident ist ausschliesslich der special_use und der muss jeweils nur einmal konfiguriert werden.

Mit meiner minimalistischen Config weiter oben ist es egal ob der IMAP-Client in seiner Benutzeroberfläche nun "Papierkorb", "Recycle Bin", "Basura", oder "トラッシュ" als visuelle Bezeichnung für Trash verwendet, physisch liegt die Mail in der Mailbox \Trash wie es durch special_use definiert wird.
Somit ist es auch egal welchen oder ob man gar mehrere IMAP-Clients mit gegebenenfalls unterschiedlichen Sprachpaketen verwendet, die Mails liegen auf dem Mailserver immer im gleichen physikalischen Postfach/Ordner.

Stelle Dir mal vor, Du solltest Deinen Konfigurationsaufwand nun für die 20 wichtigsten IMAP-Clients in den 50 wichtigsten Sprachen wiederholen; Im Worst-Case hast Du dann bis zu 5000 Definitionen statt 5 in Deiner Konfiguration. Viel Spass ;)
 
... dann muss man sich nur noch drauf verlassen, daß die Mail-Clients das auch selbst alles richtig machen.

Alternativ sollen die Leute dann halt den Webclient verwenden.
 
Ich hatte das Problem vor längerer Zeit mit Outlook, dass diese neben dem Sent Ordner noch sein "Gesendete Elemente" angelegt hat. Da hat es dann nur wie oben beschrieben geholfen, das hinzubekommen. War aber auch eine ältere Version von Outlook, die aktuelle macht es evtl. ja korrekt (bisher nicht getestet, da ich es selber nicht verwende).
 
Ich vermute mal, Outlook oder die iPhone E-Mail App wird im Nachhinein nicht noch einmal die Ordner neu zuordnen, oder? Sonst könnte ich die Tage mal einen Bekannten fragen ob sein iPhone jetzt die E-Mails in den "richtigen" Ordner verschiebt. Wenn ich der Person jetzt erklären muss, dass sie das Konto neu einrichten soll, bekommt sie wohl nen Schaden (ist 55+) und fragt mich, ob ich sie ärgern möchte :D

Da hat es dann nur wie oben beschrieben geholfen
Meinst du damit meine große Zuordnung, oder die kleinere von Joe User?
 
Meinst du damit meine große Zuordnung, oder die kleinere von Joe User?
Er meint Deine Grosse.

Ich vermute mal, Outlook oder die iPhone E-Mail App wird im Nachhinein nicht noch einmal die Ordner neu zuordnen, oder?
Vermutlich nicht, aber es sollte sich manuell in der jeweiligen Kontoeinstellung erledigen lassen, genau so, wie man es bei Gmail, Outlook/Livemail und anderen Webmail-Diensten leider auch machen muss.

Wenn ich der Person jetzt erklären muss, dass sie das Konto neu einrichten soll, bekommt sie wohl nen Schaden (ist 55+) und fragt mich, ob ich sie ärgern möchte :D
Da zeigt man dann etwas Respekt vorm Alter und antwortet wahrheitsgemäss mit: Ja ;)
 
Back
Top