Unterabschnitte

Das Mail-dovecot-Paket

Dieses Paket ist als Zusatzpaket zum Mail-Paket zu verstehen und kann nicht eigenständig verwendet werden. D.h. die generelle Konfiguration der Funktionen erfolgt über die Konfigurationsdatei des Mail-Paketes.

Die Einleitung

Dieses Paket enthält den Dovecot Open Source IMAP- und POP3-E-Mail- Server, der im Gegensatz zum bisher verwendeten Panda E-Mail-Servers die Nachrichten lokal im Maildir-Format ablegt was den E-Mail-Zugriff sehr schnell macht. Der Server stellt die Schnittstellen zum Abruf von lokal gespeicherten E-Mails durch einen POP3/IMAP4-Klienten (z.B. Mozilla Thunderbird\textregistered usw.) bereit stellen.

Alle Interessierten können hier weitere Details zum Maildir-Nachrichtenformat nachlesen: (https://de.wikipedia.org/wiki/Maildir)

Die Funktionen

Das Mail-dovecot-Paket besteht aus folgender Komponente:

Die Voraussetzungen

Dieses Paket benötigt zur korrekten Funktion ein installiertes und konfiguriertes Mail-Paket.

Die Installation

Das Mail-dovecot-Paket wird über das Setup-Menü installiert. Wird eine ältere Paketversion vorgefunden, so wird diese deinstalliert bevor die neuen Programmdateien installiert werden. Nach dem Installieren der Programmdateien wird direkt die Konfiguration des Mail-dovecot-Paketes aktualisiert und es werden die POP3/IMAP-Dienste neu gestartet.

Das Menü im Setup-Programm

Das Menü im Setup-Programm wird über 'Mail Services' -> 'Goto mail modules' angesprochen und ist wie folgt aufgebaut:

Die Menüpunkte dürften selbsterklärend sein, da sie keinerlei weitere Eingaben erwarten. Aus diesem Grund wird auf deren Funktion nicht weiter eingegangen.

Die Änderung der Konfiguration

Die Konfiguration kann über den Menüpunkt 'Edit configuration' geändert werden. Standardmäßig wird der Editor aufgerufen, der in der Environment-Konfiguration über die Variable 'EDITOR' festgelegt wurde. Nachdem der Editor beendet wurde wird abgefragt, ob die Konfiguration aktiviert werden soll. Wird dies bestätigt, werden über ein Skript die Anpassungen umgehend wirksam gemacht.

Die Konfigurationsdatei

In der Konfigurationsdatei, die über das Menü zugänglich ist, sind folgende Parameter vorhanden; wer sie von Hand editieren will findet sie unter /etc/config.d/mail-dovecot.

Die Parameter

START_MAIL_DOVECOT

Zur Aktivierung des Mail-dovecot-Paketes muss dieser Parameter auf den Wert `yes' gestellt werden. Die Einstellung `no' schaltet das Mail-dovecot-Paket ab.

ACHTUNG
Der Dovecot-Server wird nur korrekt gestartet, wenn ein installiertes mail-Paket gefunden wurde, indem der Parameter POP3IMAP_MAILBOX_FORMAT auf den Wert 'maildir' gesetzt ist!


Gültige Werte: yes, no

Standardeinstellung: START_MAIL_DOVECOT='no'

Verschiedenes

Die POP3/IMAP4-Dienste

Verbindet sich ein E-Mail-Klient zum Dovecot-Server, so wird jeweils einer bzw. mehrere Dienste gestartet. Die Namen dieser Dienste in der Prozessliste hängen dabei von dem gewählten Verbindungsprotokoll POP3 oder IMAP4 und der aktuell aktiven Funktion ab. Dies gilt es zu berücksichtigen, wenn man z.B. mittels eines Monitorprogramms die laufenden Dienste überwachen möchte. Beispiel:

POP3 : dovecot/pop3-login
       dovecot/pop3

IMAP4: dovecot/imap-login
       dovecot/imap

Die E-Mail-Verzeichnisstruktur

Die physikalische Verzeichnisstruktur des Dovecot-Servers, in der die Nachrichten eines Postfaches abgelegt werden, unterscheidet sich von der bisherigen Verzeichnisstruktur dadurch, dass die Nachrichtenordner auf der Festplatte nicht mehr in einer Baumstruktur abgelegt werden, sondern als nebeneinander liegende Verzeichnisse. Darüber hinaus finden sich in jedem Nachrichtenordner drei Unterverzeichnisse in welchen jede Nachricht in einer separaten Datei abgelegt wird. Diese Unterverzeichnisse heißen

/cur Hier werden die gelesenen Nachrichten gespeichert.
/new Hier werden die neuen, ungelesenen Nachrichten gespeichert.
/tmp Dies ist ein temporärer Zwischenspeicher welcher bei der Nachrichtenzustellung verwendet wird.

Eine Besonderheit bildet hier der Posteingang (.INBOX), dessen Unterverzeichnisse sich direkt im Stammverzeichnis befinden.

ACHTUNG
Falls man z.B. über ein Programm den Posteingang abfragen möechte, so ist trotz der abweichenden Verzeichnisstruktur der Pfad '/home/<user>/.imapmail/.INBOX' anzugeben.


Angezeigte Postfachstruktur im E-Mail-Klienten:

\Posteingang (INBOX)
\Entwürfe    (Drafts)
\Gesendet    (Sent)
\Spam        (Spam)

\Ablage\Familie\Sohn
               \Tochter
       \Arbeit\Urlaub
              \Spesen

Physikalische Postfachstruktur auf der Festplatte:

'/home/<user>/.imapmail/cur             # .INBOX !!
                       /new             #
                       /tmp             #
                       /.Drafts/cur
                               /...
                       /.Sent/cur
                             /...
                       /.Spam/cur
                             /...
                       /.Ablage.Familie.Sohn/cur
                                            /...
                       /.Ablage.Familie.Tochter/cur
                                               /...
                       /.Ablage.Arbeit.Urlaub/cur
                                             /...
                       /.Ablage.Arbeit.Spesen/cur
                                             /...

Die Dovecot-IMAP Migration

Im folgenden wird nun erklärt, wie man von dem bisher verwendeten Panda E-Mail-Server, der seine Nachrichten im mbox- bzw. mbx-Format speichert, auf den Dovecot E-Mail-Server umstellt, der Nachrichten im maildir-Format speichert.

ACHTUNG
Eine Datenkonvertierung erfordert prinzipiell ein strukturiertes und gut geplantes Vorgehen und sollte auf keinen Fall unüberlegt und spontan angegangen werden!


Folgende Dinge sind unbedingt zu beachten:

1. Vor dem Beginn der Datenkonvertierung sind alle Dienste des E-Mail-Servers zu stoppen (7 - Stop mail services) um eine Inkosistenz der Daten zu vermeiden.

2. Vor dem Beginn der Datenkonvertierung muss unbedingt auch der im Hintergrund über einen Cron-Job laufende archimap-Dienst gestoppt werden (START_ARCHIMAP='no') um eine Inkosistenz der Daten zu vermeiden.

3. Die Datenkonvertierung kann, abhängig von der Anzahl der umzustellenden Postfächer, der Anzahl der zu konvertierenden Nachrichten und der Serveraustattung, eine gewisse Zeit in Anspruch nehmen, während der weder Nachrichten versandt noch empfangen werden können. Die folgende Aufstellung vermittelt einen Eindruck über welchen hierbei Zeitrahmen gesprochen wird. Die Zahlen wurden bei der Umstellung verschiedener Postfächer des Autors aufgenommen:

200.000 Nachrichten: 25min
100.000 Nachrichten: 13min
 50.000 Nachrichten:  6min
 10.000 Nachrichten:  1min
  5.000 Nachrichten: 40sec
  1.000 Nachrichten:  8sec

4. Für die Datenkonvertierung wird ausrechend freier Speicherpatz auf der Festplatte benötigt. Da die Ursprungsverzeichnisse nicht automatisch gelöscht werden ist mit mindestens dem doppelten Speicherplatz, zu rechnen, der bisher von den Nachrichtendateien belegt wurde. Für die Speicherung temporärer Dateien etc. wird ebenfalls noch etwas Platz auf der Festplatte benötigt. Wer also jetzt schon die Grenzen seiner Festplattenkapazität ausreizt sollte vorher über den Einbau einer neuen Festplatte nachdenken.

5. Es ist eine Datensicherung der folgenden Dateien und Ordner durchzuführen. Die ursprünglichen Verzeichnisse in denen sich die Nachrichtenordner befinden werden zwar vor dem Start der Konvertierung umbenannt, dies befreit jedoch niemanden von der eigenen Sorgfaltspflicht.

/home/imappublic
/home/imapshared
/home/*/.imapmail
/var/spool/mail

/etc/config.d/mail
/etc/cram-md5.pwd
/home/*/.archimap-active
/home/*/.forward
/home/*/.mailboxlist
/var/spool/exim/custom-systemfilter.*

6. Die zur Umstellung bzw. Migration erforderlichen Konvertierfunktionen erreicht man über das zugehörige Paketmenü im Setup-Programm und wurden unter dem Punkt 'Convert mailbox(es) to maildir format' zusammen gefasst.

> eisfair setup
  > Service administration
    > Mail Service
      > Goto mail modules
        > Dovecot server administration
          * Convert mailbox(es) to maildir format
          * View conversion log file

Die Menü sieht wie folgt aus:

Convert mailboxes from MBOX/MBX to MAILDIR format

Status: SMTP server : not running
POP3 daemon  (panda): disabled
IMAP4 daemon (panda): disabled
IMAP4 daemon (dovecot): active/access: disabled

1 - convert public mailboxes
2 - convert shared mailboxes

3 - convert mailboxes of a single user
4 - convert mailboxes of all users

5 - check subscriptions of a single user
6 - check subscriptions of all users

7 - check filter files for save commands

Please select (1,2,3,4,5,6,7), (q)uit? [q]?

7. Die Konvertierung erfolgt schrittweise, indem man die einzelnen Menüpunkte der Reihe nach auswählt:

* Über '1 - convert public mailboxes' werden eventuell vorhandene öffentliche Ordner konvertiert. Das Verzeichnis /home/imappublic wird in /home/imappublic.PANDA umbenannt und die konvertierten Nachrichtenordner anschließend im Verzeichnis /home/imappublic gespeichert.

* Über '2 - convert shared mailboxes' werden eventuell vorhandene geteilte Ordner konvertiert. Das Verzeichnis /home/imapshared wird in /home/imapshared.PANDA umbenannt und die konvertierten Nachrichtenordner anschließend im Verzeichnis /home/imapshared gespeichert.

* Über '3 - convert mailboxes of a single user' kann auf Wunsch das E-Mail-Postfach eines einzelnen Anwenders oder über '4 - convert mailboxes of all users' die E-Mail-Postfächer aller aktiven mail-Anwender konvertiert werden.

Beantwortet man beim Start der Funktion die Frage 'Please confirm that missing maildir sub-directories should be created' mit '(y)es', so werden eventuell fehlende Unterverzeichnisse zur Speicherung von Nachrichten automatisch angelegt, denn Dovecot erlaubt zukünftig das gleichzeitige Speichern von Nachrichten und Unterordnern in einem Verzeichnis.

Das Verzeichnis /home/<user>/.imapmail wird in /home/<user>/.imapmail.PANDA umbenannt und die konvertierten Nachrichtenordner anschließend im Verzeichnis /home/<user>/.imapmail gespeichert. Darüber hinaus wird die bisher genutzte E-Mail-Spooldatei /var/spool/mail/<user> in /var/spool/mail/<user>.PANDA umbenannt, da diese nicht mehr benötigt wird. Neu eingehende Nachrichten werden zukünftig direkt im Postfach eines Anwenders gespeichert.

* Über '5 - check subscriptions of a single user' kann auf Wunsch die Liste der abonnierten Nachrichtenordner eines einzelnen Anwenders oder über '6 - check subscriptions of all users' die Liste der abonierten Nachrichtenordner aller aktiven mail-Anwender überprüft werden. Diese Liste der abonnierten Nachrichtenorder befindet sich nun in der Datei /home/<user/.imapmail/subscriptions. Die früher genutzte Datei /home/<user>/.mailboxlist wird in
/home/<user>/.mailboxlist.PANDA umbenannt.

Bei der Prüfung der Liste der abonnierten Nachrichtenordner werden eventuell Nachrichten angezeigt, die in den meisten Fällen jedoch keinen Grund zur Besorgnis geben.

'removing subscription of empty folder because it isn't required anymore' - Diese Meldung wird angezeigt, wenn ein Eintrag gefunden wird, welcher selbst keine Verzeichnisstruktur (/cur, /new, /tmp) zur Ablage von Nachrichtendateien enthält.
'skipping subscription 'XYZ' because it already exists' - Diese Meldung wird angezeigt, wenn ein doppelter Eintrag gefunden wurde, welcher nun korrigiert wurde.

* Über '7 - check filter files for save commands' wird geprüft, ob in persönlichen Filterdateien (/home/<user>/.forward) und in individuellen Systemfiltern
(/var/spool/exim/custom-systemfilter.*) der save-Befehl verwendet wurde um Nachrichten in Ordnern abzulegen, denn die Ordnerpfade bedürfen wegen der veränderten Ablagesystematik einer Anpassung durch den Administrator.

Alt: /home/<user>/.imapmail/Ablage/Firma/Spesen/Jahr-2019
Neu: /home/<user>/.imapmail/.Ablage.Firma.Spesen.Jahr-2019

8. Als nächstes öffnet man die mail-panda-Konfiguration und setzt den Parameter
START_MAIL_PANDA='no', in der mail-dovecot-Konfiguration setzt man den Parameter START_MAIL_DOVECOT='yes' und setzt in der mail-Konfiguration den Parameter POP3IMAP_MAILBOX_FORMAT='maildir'.

Nachdem die Konfiguration durchgelaufen ist, sollten der POP3-/IMAP- (Dovecot) und der SMTP-Server (Exim) neu gestart werden.

Hinweis
In den E-Mail-Klienten, wie z.B. Thunderbird, kann nun der Parameter `Server unterstützt Ordner, die Unterordner und Nachrichten enthalten' aktiviert werden. (Einstellungen des relevanten Accounts öffnen -> Server-Einstellungen -> Erweitert).


9. Im nächsten Schritt sollte die Konfigurationen weiterer Pakete einmal aktualisiert werden um sicher zu stellen, dass deren Konfiguration von dem nun zu verwendenden maildir-Nachrichten format Kenntnis erhält. Hier eine Aufstellung der wichtigsten Pakete:

antispam Der Parameters ANTISPAM_MAILBOX_FILE sollte geprüft und gegebenenfalls angepasst werden.
archimap Da sich durch die Umstellung auf das maildir-Format die Dateipfade bzw. die Ablagestruktur im .imapmail-Verzeichnis geändert hat, gilt es bei der Wiederinbetriebname des archimap-Programms besondere Vorsicht walten zu lassen.
clamav Der Parameter CLAMAV_MAILBOX_FILE sollte geprüft und gegebenenfalls angepasst werden.
mailx Hier ist keine Anpassung erforderlich, jedoch sollten eventuell bestehende SSH-Sitzungen getrennt und erneut aufgebaut werden um die MAIL-Umgebungsvariable automatisch neu zu setzen.

Alt: MAIL=/var/spool/mail/<user>
Neu: MAIL=/home/<user>/.imapmail/.INBOX
roundcube Die Konfiguration muss aktualisiert werden.

Folgenden Pakete wurden bis dato noch nicht mit dem maildir-Format getestet:

eisfax Das mail2fax-Skript sollte funktionieren, dai es über die Pipe-Schnittstelle aufgerufen wird.
mail2print Das mail2print-Skript sollte funktionieren, da es über die Pipe-Schnittstelle aufgerufen wird.
mailquota Hier werden eventuell noch maildir-spezifische Anpassungen erforderlich sein, die zu einem späteren Zeitpunkt angegangen werden.
sn Hierzu liegen keine Informationen vor.

Die Migrations-Check-Liste

 1. Wurde eine Datensicherung der Postfaecher durchgefuehrt?     JA/NEIN

 2. Steht ausreichend freier Speicherplatz auf der Festplatte    JA/NEIN
    zur Verfuegung um die Konvertierung durchzufuehren?
    ( df -ak )

 3. Gibt es Systemfilter in denen der save-Befehl verwendet      JA/NEIN
    wird? Details finden sich unter Punkt 7. - '7 - check
    filter files for save commands' in der Migrationsanleitung.
    ( grep "save " /var/spool/exim/custom-systemfilter.* )

    Falls JA, wie heissen diese Filterdateien?
    ( find -L /var/spool/exim -name "custom-systemfilter.*" )






 4. Wie lauten die Namen der mail-Nutzer?
    ( grep "^MAIL_USER_.*_USER" /etc/config.d/mail | \
     sed 's/^.*=.\([^ ]*\)[^ ] .*$/\1/g' | uniq | sort )






 5. Wurden fuer mail-User .forward-Dateien eingerichtet, die     JA/NEIN
    zur Filterung von Nachrichten verwendet werden und in
    denen der save-Befehl verwendet wird? Details finden sich
    unter Punkt 7. - '7 - check filter files for save commands'
    in der Migrationsanleitung.
    ( find -L /home -maxdepth 2 -name ".forward*" \
     -exec grep -H 'save ' {} \; )

    Falls JA, wie heissen die mail-Nutzer:
    ( find -L /home -maxdepth 2 -name ".forward*" \
     -exec grep -H 'save ' {} \; | cut -d\/ -f3 | uniq )

 6. Welche der folgenden Pakete sind ebenfalls auf dem Server
    installiert und aktiviert, deren Konfiguration im Anschluss
    an die Konvertierung geprueft bzw.  aktualisiert und deren
    Dienst neu gestartet werden muss?

    - antispam                                                   JA/NEIN
    - antisam_razor                                              JA/NEIN
    - archimap                                                   JA/NEIN
    - clamav                                                     JA/NEIN
    - mailx                                                      JA/NEIN
    - roundcube                                                  JA/NEIN

 7. Wurden alle Dienste des E-Mail-Servers herunter gefahren?    JA/NEIN

8. DIE MIGRATION KANN NUN GEMAESS DER BESCHREIBUNG BEGINNEN!

 9. Wurden alle Dienste des E-Mail-Servers wieder gestartet?     JA/NEIN

10. Wurden alle Konfigurationen der Pakete, die unter Punkt 6.   JA/NEIN
    mit JA gekennzeichnet wurden, geprueft bzw. gegebenenfalls
    neu erzeugt und die zugehoerigen Dienste neu gestartet?