Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mail_c7:dovecot_1 [04.08.2014 19:02. ] – Neuer artikel "Dovecot, "der" IMAP-Server unter CentOS 7.x" #dovecot #centos7 djangocentos:mail_c7:dovecot_1 [15.10.2020 16:42. ] (aktuell) – [IP-Adressen] django
Zeile 1: Zeile 1:
 ====== Dovecot, "der" IMAP-Server unter CentOS 7.x ====== ====== Dovecot, "der" IMAP-Server unter CentOS 7.x ======
-{{:centos:mail_c7:dovecot_logo.png?nolink&225 |Dovecot-Logo}} Für die eMailkommunikation in unserem SOHO(( **S**mall **O**ffice **H**ome **O**ffice ))-LAN bedienen wir uns des IMAP-Server **[[http://dovecot.org/|Dovecot]]**. Dies nicht zuletzt, da dieser, im Gegensatz zum Dinosaurier verschrieenen **Cyrus** wesentlich einfacher zu konfigurieren ist und auch sicherheitstechnische Vorteile bietet. Da der Dovecot-IMAP-Server, keine großartigen und besonderen Voraussetzungen erfordert, einfach und sehr schnell zu installieren ist, ist dies in der Regel die //**erste Wahl**// ein jedes Postmasters bei der Installation von kleinen bis hin zu großen Unternehmens oder sogar Carrier-Lösungen.+{{:centos:mail_c7:dovecot_logo.png?nolink&225 |Dovecot-Logo}} Für die eMail-Kommunikation in unserem SOHO(( **S**mall **O**ffice **H**ome **O**ffice ))-LAN bedienen wir uns des IMAP-Server **[[http://dovecot.org/|Dovecot]]**. Dies nicht zuletzt, da dieser, im Gegensatz zum Dinosaurier verschrieenen **Cyrus** wesentlich einfacher zu konfigurieren ist und auch sicherheitstechnische Vorteile bietet. Da der Dovecot-IMAP-Server, keine großartigen und besonderen Voraussetzungen erfordert, einfach und sehr schnell zu installieren ist, ist dies in der Regel die //**erste Wahl**// ein jedes Postmasters bei der Installation von kleinen bis hin zu großen Unternehmens oder sogar Carrier-Lösungen.
  
 Die nachfolgende Beschreibung zeigt, wie man unter CentOS 7.x einen Dovecot-Mailserver **MUA**((**M**ail **U**ser **A**gent)) aufsetzen und sicher betreiben kann. Die nachfolgende Beschreibung zeigt, wie man unter CentOS 7.x einen Dovecot-Mailserver **MUA**((**M**ail **U**ser **A**gent)) aufsetzen und sicher betreiben kann.
Zeile 7: Zeile 7:
 </WRAP> </WRAP>
  
-Eine der Eigenschaften, die **Dovecot** als die erste Wahl bei der Installation eines POP3/IMAP-Servers machen, ist neben den Sicherheits- und Performanceaspekten, die leichte und einfache Konfiguration. Wer schon mal **SASL** beim [[http://cyrusimap.org/|Cyrus-IMAP-Server]] und beim [[http://dovecot.org/|Dovecot]] installiert und Konfiguriert hat, wird hierbei sicherlich zustimmen.+Eine der Eigenschaften, die **Dovecot** als die erste Wahl bei der Installation eines POP3/IMAP-Servers machen, ist neben den Sicherheits- und Performanceaspekten, die leichte und einfache Konfiguration. Wer schon mal **SASL** beim [[http://cyrusimap.org/|Cyrus-IMAP-Server]] und beim [[http://dovecot.org/|Dovecot]] installiert und konfiguriert hat, wird hierbei sicherlich zustimmen.
  
 ===== Installation ===== ===== Installation =====
-Am Einfachsten bedienen wir uns eines aktuell gepflegten Dovecot-Repositories, wie z.B. dem Repository **[[http://repo.mailserver.guru/7/|mailserver.guru]]**. Der dort enthaltene Release-Kandidat ist **Dovecot //2.2.13//**((Stand Juli 2014)). Die Intstallation und Integration des **[[http://repo.mailserver.guru/7/|Repositories mailserver.guru]]** ist im Kapitel **[[centos:mailserver.guru|mailserver.guru unter CentOS 6 und CentOS 7 einbinden]]** erklärt.+Am einfachsten bedienen wir uns eines aktuell gepflegten Dovecot-Repositories, wie z.B. dem Repository **[[http://repo.mailserver.guru/7/|mailserver.guru]]**. Der dort enthaltene Release-Kandidat ist **Dovecot //2.2.36//**((Stand Januar 2019)). Die Installation und Integration des **[[http://repo.mailserver.guru/7/|Repositories mailserver.guru]]** ist im Kapitel **[[centos:mailserver.guru|mailserver.guru unter CentOS 6 und CentOS 7 einbinden]]** erklärt.
  
    # yum list dovecot*    # yum list dovecot*
Zeile 585: Zeile 585:
  
 ==== Benutzerverwaltung / Anmeldenamen ==== ==== Benutzerverwaltung / Anmeldenamen ====
-Doch selbst bei kleinen Installationen, lohnt es sich, kurz inne zu halten und zu überlegen, wo denn die Reise hingehen könnte. Der Wunsch nach **KISS**((**K**eep **I**t **S**tupid and **S**imple)) kann bei Zeiten gehörig nach hinten losgehen. Ganz klar, eine Benutzer- und Passwort-Verwaltung mit Hilfe der **userdb** und **passdb** scheint für eine kleine Firma auf den ersten Blick eine lohnende Sache zu sein. Warum solle ein **//Robert Nullinger//** seine eMail-Adresse beim Anmelden verwenden, wenn denn der doch kürzere Vorname **//Robert Nullinger//** auch ausreicht. Na ja, spätestens dann, wenn **//Robert Priesemut//** eingestellt oder eine zweite oder sehr viele Domains ins Spiel kommen, ist recht schnell "//Schluß mit lustig//"! Der spätere Mehraufwand bei Umstellungen, wird hier durchaus sehr schnell zum Showstopper und kosten (Arbeits-/Lebens)-Zeit sowie einen Haufen Nerven. Und von beiden hat der **Admin** und **Postmaster** gewöhnlich nie ausreichend viel über. ;-) +Doch selbst bei kleinen Installationen, lohnt es sich, kurz inne zu halten und zu überlegen, wo denn die Reise hingehen könnte. Der Wunsch nach **KISS**((**K**eep **I**t **S**tupid and **S**imple)) kann bei Zeiten gehörig nach hinten losgehen. Ganz klar, eine Benutzer- und Passwort-Verwaltung mit Hilfe der **userdb** und **passdb** scheint für eine kleine Firma auf den ersten Blick eine lohnende Sache zu sein. Warum solle ein **//Robert Nullinger//** seine eMail-Adresse beim Anmelden verwenden, wenn denn der doch kürzere Vorname **//robert//** auch ausreicht. Na ja, spätestens dann, wenn **//Robert Priesemut//** eingestellt oder eine zweite oder sehr viele Domains ins Spiel kommen, ist recht schnell "//Schluß mit lustig//"! Der spätere Mehraufwand bei Umstellungen, wird hier durchaus sehr schnell zum Showstopper und kosten (Arbeits-/Lebens)-Zeit sowie einen Haufen Nerven. Und von beiden hat der **Admin** und **Postmaster** gewöhnlich nie ausreichend viel über. ;-) 
  
 Wir werden daher nur ganz kurz zum [[centos:mail_c7:dovecot_6|Einstieg]] und Grundverständnis, auf die scheinbar einfachste Variante mit **userdb** und **passdb** eingehen. Die eigentliche Lösung, auf die wir im Detail genauer eingehen werden, nutzt zur Benutzerverwaltung **[[centos:mail_c6:pfadmin_1|Postfixadmin]]** und zur Speicherung der Nutzerdaten eine **[[centos:mysql|MySQL-Datenbank]]**. Alternativ kann man natürlich hierzu auch **[[centos:ldap:start|LDAP]]**, **[[http://de.wikipedia.org/wiki/Active_Directory|Active Directory]]**. Wir werden daher nur ganz kurz zum [[centos:mail_c7:dovecot_6|Einstieg]] und Grundverständnis, auf die scheinbar einfachste Variante mit **userdb** und **passdb** eingehen. Die eigentliche Lösung, auf die wir im Detail genauer eingehen werden, nutzt zur Benutzerverwaltung **[[centos:mail_c6:pfadmin_1|Postfixadmin]]** und zur Speicherung der Nutzerdaten eine **[[centos:mysql|MySQL-Datenbank]]**. Alternativ kann man natürlich hierzu auch **[[centos:ldap:start|LDAP]]**, **[[http://de.wikipedia.org/wiki/Active_Directory|Active Directory]]**.
Zeile 592: Zeile 592:
  
 ==== Datenspeicher ==== ==== Datenspeicher ====
 +=== Speicherformat ===
 Eine sehr technikgetriebene Überlegung, ist die Frage, welches Format verwenden wir beim Speichern der eMails auf unseren Festplatten bzw. Netzwerkspeichern. Theoretisch stehen uns drei Formate zur Verfügung - theoretisch aus dem Grund, da eine der drei Kandidaten keine ernsthafte Alternative (mehr) für den Einsatz auf unserem Dovecot IMAP-Server sein kann. Doch sehen wir uns erst einaml die drei Formate kurz an. Eine sehr technikgetriebene Überlegung, ist die Frage, welches Format verwenden wir beim Speichern der eMails auf unseren Festplatten bzw. Netzwerkspeichern. Theoretisch stehen uns drei Formate zur Verfügung - theoretisch aus dem Grund, da eine der drei Kandidaten keine ernsthafte Alternative (mehr) für den Einsatz auf unserem Dovecot IMAP-Server sein kann. Doch sehen wir uns erst einaml die drei Formate kurz an.
   - **[[http://wiki2.dovecot.org/MailboxFormat/mbox|mbox]]** \\ :NULL::NULL::DOWN: Pro IMAP-Verzeichnis werden alle Nachrichten in nur **eine große** Datei geschrieben. \\ :NULL::NULL::DOWN: Geht die eine Datei verloren, sind alle (!) eMails verloren! \\ :NULL::NULL::DOWN: Bei sehr vielen Nachrichten in einem Ordner werden die Dateien mit unter sehr groß und verursachen \\ :NULL::NULL::NULL: daher eine höhere **I/O**-Last beim Verarbeiten. \\ :NULL::NULL::DOWN: **Write-Locks** werden benötigt, da nur ein Prozess in ein mbox-Datei schreiben kann. \\ \\ <WRAP center round alert 80%>   - **[[http://wiki2.dovecot.org/MailboxFormat/mbox|mbox]]** \\ :NULL::NULL::DOWN: Pro IMAP-Verzeichnis werden alle Nachrichten in nur **eine große** Datei geschrieben. \\ :NULL::NULL::DOWN: Geht die eine Datei verloren, sind alle (!) eMails verloren! \\ :NULL::NULL::DOWN: Bei sehr vielen Nachrichten in einem Ordner werden die Dateien mit unter sehr groß und verursachen \\ :NULL::NULL::NULL: daher eine höhere **I/O**-Last beim Verarbeiten. \\ :NULL::NULL::DOWN: **Write-Locks** werden benötigt, da nur ein Prozess in ein mbox-Datei schreiben kann. \\ \\ <WRAP center round alert 80%>
Zeile 600: Zeile 601:
 </WRAP> </WRAP>
   - **[[http://wiki2.dovecot.org/MailboxFormat/dbox|mdbox]]** \\ :NULL::NULL::UP: Properitäres **//"High-End Speicherformat"//** für sehr große Installationen. \\ :NULL::NULL::UP: Viele Nachrichten werden in mehrere größere Dateien geschrieben, daher sind inkrementelle Backups \\ :NULL::NULL::NULL: weiterhin ohne großen Aufwand möglich. \\ :NULL::NULL::DOWN: Ähnlich wie schon beim Cyrus-IMAP-Server wird eine eigene Datenbank zur Informationsspeicherung der \\ :NULL::NULL::NULL: eMails benötigt. Daher können nicht mehr nur auf Dateiebene Nachrichten verarbeitet werden. Änderungen \\ :NULL::NULL::NULL: im mdbox-Speicherbereich müssen ausschließlich über entsprechende **doveadm**-Befehle vorgenommen \\ :NULL::NULL::NULL: werden! Ebenso muss bei Backups/Restores der Nachrichten muß die Datenbank mit ihren Abhängigkeiten \\ :NULL::NULL::NULL: berücksichtigt werden. Entsprechendes //**Knowhow**// auf Seiten des Postmasters und Administrators ist \\ :NULL::NULL::NULL: zwingend gegeben! \\ \\ <WRAP center round info 80%>   - **[[http://wiki2.dovecot.org/MailboxFormat/dbox|mdbox]]** \\ :NULL::NULL::UP: Properitäres **//"High-End Speicherformat"//** für sehr große Installationen. \\ :NULL::NULL::UP: Viele Nachrichten werden in mehrere größere Dateien geschrieben, daher sind inkrementelle Backups \\ :NULL::NULL::NULL: weiterhin ohne großen Aufwand möglich. \\ :NULL::NULL::DOWN: Ähnlich wie schon beim Cyrus-IMAP-Server wird eine eigene Datenbank zur Informationsspeicherung der \\ :NULL::NULL::NULL: eMails benötigt. Daher können nicht mehr nur auf Dateiebene Nachrichten verarbeitet werden. Änderungen \\ :NULL::NULL::NULL: im mdbox-Speicherbereich müssen ausschließlich über entsprechende **doveadm**-Befehle vorgenommen \\ :NULL::NULL::NULL: werden! Ebenso muss bei Backups/Restores der Nachrichten muß die Datenbank mit ihren Abhängigkeiten \\ :NULL::NULL::NULL: berücksichtigt werden. Entsprechendes //**Knowhow**// auf Seiten des Postmasters und Administrators ist \\ :NULL::NULL::NULL: zwingend gegeben! \\ \\ <WRAP center round info 80%>
-**Performantes //"High-End Speicherformat"//** für sehr große Installationen. Hinreichende Kenntnisse übder das **mbox**-Format und die **doveadm**-Kommandos sind Grundvoraussetzung für den Einsatz. Für den Einsteiger und bei überschaubaren Menge an eMails und Postfächern, eher nicht zu empfehlen!+**Performantes //"High-End Speicherformat"//** für sehr große Installationen. Hinreichende Kenntnisse über das **mbox**-Format und die **doveadm**-Kommandos sind Grundvoraussetzung für den Einsatz. Für den Einsteiger und bei überschaubaren Menge an eMails und Postfächern, eher nicht zu empfehlen!
 </WRAP> </WRAP>
  
 +=== Komprimierung ===
 +In der Konfigurationsdatei //**/etc/dovecot/conf.d/90-plugin.conf**// wird dann das Komprimierungsverfahren und der Komprimierungsfaktor eingetragen. Laut dem [[http://www.dovecot-buch.de/|Dovecot-Buch]] von [[http://www.postfixbuch.de/web/home/autor/|Peer Heinlein]] ist das ältere **gzip**-Verfahren 3x schneller als der neuere bzip2((Dovecot Buch Seite 156)).
 +   # vim  /etc/dovecot/conf.d/90-plugin.conf
 +<file bash /etc/dovecot/conf.d/90-plugin.conf>##
 +## Plugin settings
 +##
  
 +# All wanted plugins must be listed in mail_plugins setting before any of the
 +# settings take effect. See <doc/wiki/Plugins.txt> for list of plugins and
 +# their configuration. Note that %variable expansion is done for all values.
  
 +plugin {
 +  #setting_name = value
 +  # Django : 2014-08-05
 +  # default: unset
 +  zlib_save = gz
 +  # zlib_save = bz2
 +  # Komprimierungslevel Wert zwischen 1 und 9
 +  zlib_save_level = 6
 +}
 +</file>
  
 +Die Aktivierung der Komprimierung erfolgt dann nur noch durch anfügen des Mail-plugins **zlib** in der Konfigiurationsdatei //**/etc/dovecot/conf.d/10-mail.conf**//.
 +   # vim /etc/dovecot/conf.d/10-mail.conf
 +<code bash>...
 +
 +# Space separated list of plugins to load for all services. Plugins specific to
 +# IMAP, LDA, etc. are added to this list in their own .conf files.
 +# Django : 2014-08-05
 +# default: #mail_plugins =
 +mail_plugins = zlib
 +
 +...
 +</code>
 +
 +Zum Aktivieren führen wir nun kurz einen **Reload** der Konfigurationsdateien durch.
 +   # systemctl reload dovecot
 +
 +Den erfolgreichen Reload der konfiguration sehen wir dann auch bei der Statusabfrage des Daemon.
 +   # systemctl status dovecot
 +<code>dovecot.service - Dovecot IMAP/POP3 email server
 +   Loaded: loaded (/usr/lib/systemd/system/dovecot.service; disabled)
 +   Active: active (running) since Tue 2014-08-05 13:00:00 CEST; 2h 15min ago
 +  Process: 5375 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
 +  Process: 5247 ExecStartPre=/usr/libexec/dovecot/prestartscript (code=exited, status=0/SUCCESS)
 + Main PID: 5251 (dovecot)
 +   CGroup: /system.slice/dovecot.service
 +           ├─5251 /usr/sbin/dovecot -F
 +           ├─5254 dovecot/anvil [0 connections]
 +           ├─5377 dovecot/log
 +           └─5379 dovecot/config
 +
 +Aug 05 14:54:30 vml000070.dmz.nausch.org dovecot[5255]: imap(django@nausch.org): Debug: Namespace : type=private, prefix=, sep=, inbox=no, hidden=yes, list=no, subs...AYOUT=none
 +Aug 05 14:54:30 vml000070.dmz.nausch.org dovecot[5255]: imap(django@nausch.org): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
 +Aug 05 14:54:30 vml000070.dmz.nausch.org dovecot[5255]: imap-login: Login: user=<django@nausch.org>, method=PLAIN, rip=10.0.0.20, mpid=5349, TLS, TLSv1 with cipher .../ngAKAAAU>
 +Aug 05 15:14:54 vml000070.dmz.nausch.org systemd[1]: Reloading Dovecot IMAP/POP3 email server.
 +Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5251]: master: Warning: SIGHUP received - reloading configuration
 +Aug 05 15:14:54 vml000070.dmz.nausch.org systemd[1]: Reloaded Dovecot IMAP/POP3 email server.
 +Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5255]: imap: Server shutting down. in=319 out=1486
 +Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5255]: imap: Server shutting down. in=107224 out=3408
 +Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5255]: imap: Server shutting down. in=174 out=1137
 +Aug 05 15:14:54 vml000070.dmz.nausch.org dovecot[5255]: imap: Server shutting down. in=1675 out=4568
 +Hint: Some lines were ellipsized, use -l to show in full.
 +</code>
 +
 +Im folgendem Beispiel wurde eine Nachricht in den Unterordner **Test** kopiert. Nach der aktivierung der Komprimierung wurde erneut die Nachricht in den gleichen Unterordner kopiert.
 +
 +Auf Dateiebene sieht man dann sehr deutlich den Grad der Komprimierung. Hatte die eMail vor der Komprimierung noch **103.504 Bytes** sind des bei aktivierter Komprimierung nur noch **16646 Bytes**.
 +   # ll /srv/vmail/nausch.org/django/Maildir/.Test/cur/
 +
 +<code>-rw------- 1 vmail vmail 103504 Jul 18 20:19 1407243162.M32318P5341.vml000070.dmz.nausch.org,S=103504,W=106112:2,S
 +-rw------- 1 vmail vmail  16646 Jul 18 20:19 1407244896.M19043P5389.vml000070.dmz.nausch.org,S=16646,W=106112:2,S
 +</code>
 ==== Mailbox Location / vmail-Directory ==== ==== Mailbox Location / vmail-Directory ====
 Für unseren Mailserver mit seinen Mailboxen brauchen wir noch ein entsprechendes Verzeichnis, in dem Dovecot später die Nutzerkonten anlegen sowie die Nachrichten und ggf. die SIEVE-Scripte ablegen kann. Für unseren Mailserver mit seinen Mailboxen brauchen wir noch ein entsprechendes Verzeichnis, in dem Dovecot später die Nutzerkonten anlegen sowie die Nachrichten und ggf. die SIEVE-Scripte ablegen kann.
Zeile 625: Zeile 696:
  
 Fehlt das entsprechende Verzeichnis, ist auch dies kein allzugroßer Act, legen wir bei Bedarf dieses Verzeichnis einfach schnell an. Wir orientieren uns dabei an den **[[http://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#.2Fsrv_.E2.80.93_Daten.2C_die_von_Diensten_angeboten_werden|FHS]]**((**F**ilesystem **H**ierarchy **S**tandard)), der für den Daten, die von Diensten angeboten werden, das Verzeichnis //**/srv**// vorsieht. Fehlt das entsprechende Verzeichnis, ist auch dies kein allzugroßer Act, legen wir bei Bedarf dieses Verzeichnis einfach schnell an. Wir orientieren uns dabei an den **[[http://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard#.2Fsrv_.E2.80.93_Daten.2C_die_von_Diensten_angeboten_werden|FHS]]**((**F**ilesystem **H**ierarchy **S**tandard)), der für den Daten, die von Diensten angeboten werden, das Verzeichnis //**/srv**// vorsieht.
-   # mkdir --/srv/vmail+   # mkdir -m 770 -/srv/vmail
  
 Für die Berechtigungen wählen wir nun als //**User**// und als //**Gruppe**// jeweils **vmail**. Somit haben wir später keinen Streß wenn dovecot versucht ein Benutzerverzeichnis neu anzulegen! Für die Berechtigungen wählen wir nun als //**User**// und als //**Gruppe**// jeweils **vmail**. Somit haben wir später keinen Streß wenn dovecot versucht ein Benutzerverzeichnis neu anzulegen!
    # chown vmail.vmail /srv/vmail    # chown vmail.vmail /srv/vmail
-   # chmod 770 /srv/vmail 
  
 <WRAP center round important> <WRAP center round important>
Zeile 761: Zeile 831:
  
 Auf Grund der Erfahrungen und der Rückfragen meiner Endkunden, werden fast nur noch ausschließlich die Ordner Unterhalb des **namespaces**. Im Fall vom namespace **INBOX** setzen wir dann den **prefix** auf den Wert **INBOX/**. Auf Grund der Erfahrungen und der Rückfragen meiner Endkunden, werden fast nur noch ausschließlich die Ordner Unterhalb des **namespaces**. Im Fall vom namespace **INBOX** setzen wir dann den **prefix** auf den Wert **INBOX/**.
-   #vim /etc/dovecot/conf.d/10-mail.conf+   # vim /etc/dovecot/conf.d/10-mail.conf
  
 <code bash>... <code bash>...
Zeile 1226: Zeile 1296:
 </file> </file>
  
 +==== Logging und Fehlersuche ====
 +Dovecot unterstützt uns bei der Fehlersuche mit aussagekräftigen Einträgen im Maillog unseres Servers. Zum Feinjustieren und individuellen Loggingverhalten bietet uns Dovecot mehrere Optionen.
  
 +=== dovecot.conf ===
 +Rufen wir die Prozessliste auf, sehen wir je nach Auslastung unseres Servers einen oder mehrere Dovecot-Prozesse. 
 +   USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
 +   dovecot  19666  0.0  0.0  19204  2072 ?        S    18:40   0:00 dovecot/imap
  
 +Zieht jetzt ein Client mehr Ressourcen, als wir diesem zugestehen wollen, können wir so leider nicht ohne weiteres herausfinden, wer das ist.
  
 +Über den Konfigurationsparameter **verbose_proctitle** können wir definieren, dass uns neben den üblichen
 +ps-Werten zusätzlich noch der Login-Name, die Client-IP-Adresse und auch noch der ausgeführte IMAP-Befehl angezeigt wird.
 +   USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
 +   dovecot  19907 66.6  0.0  18860  1684 ?        S    18:45   0:00 dovecot/imap [django@mailserver.guru 10.0.0.20]
 +   dovecot  19971  0.0  0.0  19204  2088 ?        S    18:46   0:00 dovecot/imap [django@nausch.org 109.43.1.83 IDLE]
  
 +Zum Aktivieren dieser Option tragen wir nun einfach ein **verbose_proctitle=yes** in der Konfigurationsdatei //**/etc/dovecot/dovecot.conf**// ein.
 +   # vim /etc/dovecot/dovecot.conf
 +<file bash /etc/dovecot/dovecot.conf>## Dovecot configuration file                                                                                                                                                    
 +                                                                                                                                                                                 
 +# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration                                                                                                          
 +
 +# "doveconf -n" command gives a clean output of the changed settings. Use it
 +# instead of copy&pasting files when posting to the Dovecot mailing list.
 +
 +# '#' character and everything after it is treated as comments. Extra spaces
 +# and tabs are ignored. If you want to use either of these explicitly, put the
 +# value inside quotes, eg.: key = "# char and trailing whitespace  "
 +
 +# Most (but not all) settings can be overridden by different protocols and/or
 +# source/destination IPs by placing the settings inside sections, for example:
 +# protocol imap { }, local 127.0.0.1 { }, remote 10.0.0.0/8 { }
 +
 +# Default values are shown for each setting, it's not required to uncomment
 +# those. These are exceptions to this though: No sections (e.g. namespace {})
 +# or plugin settings are added by default, they're listed only as examples.
 +# Paths are also just examples with the real defaults being based on configure
 +# options. The paths listed here are for configure --prefix=/usr
 +# --sysconfdir=/etc --localstatedir=/var
 +
 +# Protocols we want to be serving.
 +#protocols = imap pop3 lmtp
 +
 +# A comma separated list of IPs or hosts where to listen in for connections. 
 +# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
 +# If you want to specify non-default ports or anything more complex,
 +# edit conf.d/master.conf.
 +#listen = *, ::
 +
 +# Base directory where to store runtime data.
 +#base_dir = /var/run/dovecot/
 +
 +# Name of this instance. In multi-instance setup doveadm and other commands
 +# can use -i <instance_name> to select which instance is used (an alternative
 +# to -c <config_path>). The instance name is also added to Dovecot processes
 +# in ps output.
 +#instance_name = dovecot
 +
 +# Greeting message for clients.
 +#login_greeting = Dovecot ready.
 +
 +# Space separated list of trusted network ranges. Connections from these
 +# IPs are allowed to override their IP addresses and ports (for logging and
 +# for authentication checks). disable_plaintext_auth is also ignored for
 +# these networks. Typically you'd specify your IMAP proxy servers here.
 +#login_trusted_networks =
 +
 +# Space separated list of login access check sockets (e.g. tcpwrap)
 +#login_access_sockets = 
 +
 +# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
 +# proxying. This isn't necessary normally, but may be useful if the destination
 +# IP is e.g. a load balancer's IP.
 +#auth_proxy_self =
 +
 +# Show more verbose process titles (in ps). Currently shows user name and
 +# IP address. Useful for seeing who are actually using the IMAP processes
 +# (eg. shared mailboxes or if same uid is used for multiple accounts).
 +# Django : 2014-07-21
 +# In der Prozessliste bei den POP3/IMAP-Prozessen zusätzlich den Usernamen, 
 +# die Client-IP-Adresse und den ausgeführten IMAP-Befehl anzeigen. 
 +# default: #verbose_proctitle = no
 +verbose_proctitle = yes
 +
 +# Should all processes be killed when Dovecot master process shuts down.
 +# Setting this to "no" means that Dovecot can be upgraded without
 +# forcing existing client connections to close (although that could also be
 +# a problem if the upgrade is e.g. because of a security fix).
 +#shutdown_clients = yes
 +
 +# If non-zero, run mail commands via this many connections to doveadm server,
 +# instead of running them directly in the same process.
 +#doveadm_worker_count = 0
 +# UNIX socket or host:port used for connecting to doveadm server
 +#doveadm_socket_path = doveadm-server
 +
 +# Space separated list of environment variables that are preserved on Dovecot
 +# startup and passed down to all of its child processes. You can also give
 +# key=value pairs to always set specific settings.
 +#import_environment = TZ
 +
 +##
 +## Dictionary server settings
 +##
 +
 +# Dictionary can be used to store key=value lists. This is used by several
 +# plugins. The dictionary can be accessed either directly or though a
 +# dictionary server. The following dict block maps dictionary names to URIs
 +# when the server is used. These can then be referenced using URIs in format
 +# "proxy::<name>".
 +
 +dict {
 +  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
 +  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
 +}
 +
 +# Most of the actual configuration gets included below. The filenames are
 +# first sorted by their ASCII value and parsed in that order. The 00-prefixes
 +# in filenames are intended to make it easier to understand the ordering.
 +!include conf.d/*.conf
 +
 +# A config file can also tried to be included without giving an error if
 +# it's not found:
 +!include_try local.conf
 +</file>
 +
 +=== 10-logging.conf ===
 +Weitere Optionen zum Umfang beim Logging nehmen wir an Hand der Datei //**10-logging.conf**// vor. Die einzelnen Parameter sind mit entsprechenden Kommentaren versehen.
 +   # vim /etc/dovecot/conf.d/10-logging.conf
 +<file bash /etc/dovecot/conf.d/10-logging.conf>##
 +## Log destination.
 +##
 +
 +# Log file to use for error messages. "syslog" logs to syslog,
 +# /dev/stderr logs to stderr.
 +#log_path = syslog
 +
 +# Log file to use for informational messages. Defaults to log_path.
 +#info_log_path = 
 +# Log file to use for debug messages. Defaults to info_log_path.
 +#debug_log_path = 
 +
 +# Syslog facility to use if you're logging to syslog. Usually if you don't
 +# want to use "mail", you'll use local0..local7. Also other standard
 +# facilities are supported.
 +#syslog_facility = mail
 +
 +##
 +## Logging verbosity and debugging.
 +##
 +
 +# Log unsuccessful authentication attempts and the reasons why they failed.
 +#auth_verbose = no
 +# Django : 2014-07-21
 +# Detaillierte Loginformationen zum positiven Authentifizierungsprozess 
 +# bzw. im Fehlerfall mit Details zu den Fehlern
 +# default: auth_verbose = no
 +auth_verbose = no
 +
 +# In case of password mismatches, log the attempted password. Valid values are
 +# no, plain and sha1. sha1 can be useful for detecting brute force password
 +# attempts vs. user simply trying the same password over and over again.
 +# You can also truncate the value to n chars by appending ":n" (e.g. sha1:6).
 +#auth_verbose_passwords = no
 +
 +# Even more verbose logging for debugging purposes. Shows for example SQL
 +# queries.
 +#auth_debug = no
 +# Django : 2014-07-21
 +# Detaillierte Debug-Loginformationen zum Authentifizierungsprozess inkl.
 +# der SQL-Abfragen und deren Ergebnisse ins Logfile schreiben
 +
 +# In case of password mismatches, log the passwords and used scheme so the
 +# problem can be debugged. Enabling this also enables auth_debug.
 +#auth_debug_passwords = no
 +# Django : 2014-07-21
 +# Passwort zum Debuggen mitloggen? 
 +
 +# Enable mail process debugging. This can help you figure out why Dovecot
 +# isn't finding your mails.
 +#mail_debug = no
 +# Django : 2014-07-21
 +# Detailierte Loginformationen zur Verarbeitung der eMails durch Dovecot.
 +
 +# Show protocol level SSL errors.
 +#verbose_ssl = no
 +# Django : 2014-07-21
 +# SSL-Debugmode aktivieren. 
 +
 +# mail_log plugin provides more event logging for mail processes.
 +plugin {
 +  # Events to log. Also available: flag_change append
 +  #mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
 +  # Available fields: uid, box, msgid, from, subject, size, vsize, flags
 +  # size and vsize are available only for expunge and copy events.
 +  #mail_log_fields = uid box msgid size
 +}
 +
 +##
 +## Log formatting.
 +##
 +
 +# Prefix for each line written to log file. % codes are in strftime(3)
 +# format.
 +#log_timestamp = "%b %d %H:%M:%S "
 +# Django : 2014-07-21
 +# default: unset
 +log_timestamp  = "%Y-%m-%d %H:%M:%S "
 +
 +# Space-separated list of elements we want to log. The elements which have
 +# a non-empty variable value are joined together to form a comma-separated
 +# string.
 +#login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c
 +# Django : 2014-07-21
 +# default: unset
 +# Folgende Parameter wurden aktiviert:
 +# %u         : User/Login-Namen 
 +# %m         : Authentication-Methode
 +# %r         : Remote IP Adress
 +# %e         : Mail-Process-ID (imap/pop3) der post-login Verbindung
 +# %c         : "secured" String "SSL", "TLS" 
 +# %k         : SSL Protokoll und Cipher-Information  
 +# %{session} : Session-ID der Client-Verbindung
 +login_log_format_elements = user=<%u> method=%m rip=%r mpid=%e %c %k session=<%{session}>
 +
 +# Login log format. %s contains login_log_format_elements string, %$ contains
 +# the data we want to log.
 +#login_log_format = %$: %s
 + 
 +# Log prefix for mail processes. See doc/wiki/Variables.txt for list of
 +# possible variables you can use.
 +#mail_log_prefix = "%s(%u): "
 +
 +# Format to use for logging mail deliveries. You can use variables:
 +#  %$ - Delivery status message (e.g. "saved to INBOX")
 +#  %m - Message-ID
 +#  %s - Subject
 +#  %f - From address
 +#  %p - Physical size
 +#  %w - Virtual size
 +#deliver_log_format = msgid=%m: %$
 +</file>
 +
 +Die benutzen Variablen in der Konfigurationsdatei //**/etc/dovecot/conf.d/10-logging.conf**// sind im [[http://wiki2.dovecot.org/Variables|Dovecot Wiki]] ausführlich beschrieben.
 +
 +=== 10-mail.conf ===
 +Normalerweise loggt Dovecot nur mit, wann sich ein Nutzer am server an und abmeldet. Möchte man darüber hinaus sehen, welche IMAP-Kommandos der eMail-Client abgesetzt hat, muß man auf die beiden plugins **[[http://wiki2.dovecot.org/Plugins/Notify|notify]]** und **[[http://wiki2.dovecot.org/Plugins/MailLog|mail_log]]** zurückgreifen. Das Plugin **mail_log** schreibt dabei die Änderungen, die das **notify**-Plugin meldet, ins Maillog des Servers.
 +   # vim /etc/dovecot/conf.d/10-mail.conf
 +
 +<code bash>...
 +
 +# Space separated list of plugins to load for all services. Plugins specific to
 +# IMAP, LDA, etc. are added to this list in their own .conf files.
 +# Django : 2014-08-05 - zlib-Kompremmierung der Mailkonten
 +# default: #mail_plugins =
 +#mail_plugins = zlib
 +# Django : 2014-08-06 - Quotaregelung aktiviert
 +# last   : mail_plugins = zlib
 +# mail_plugins = zlib quota
 +# Django : 2014-08-08 - ACL-Plugin für Shared Folders
 +# mail_plugins = zlib quota acl
 +# Django : 2014-08-10 - Loggen der IMAP-Kommandos im Maillog des Servers
 +mail_plugins = zlib quota acl notify mail_log
 +
 +...
 +</code>
  
  
-FIXME 
 ==== IP-Adressen ==== ==== IP-Adressen ====
 Welche IP-Adressen unser Dovecot-Server zur Verfügung stellt fragen wir mit dem Befehl **netstat** ab. Welche IP-Adressen unser Dovecot-Server zur Verfügung stellt fragen wir mit dem Befehl **netstat** ab.
Zeile 1249: Zeile 1580:
 In dem Beispiel sehen wir folgende möglichen Verbindungen: In dem Beispiel sehen wir folgende möglichen Verbindungen:
   * **[[centos:mail_c7:dovecot_2|10.0.0.70:24]]** das ist unser **LMTP**-Port für die Annahme der Nachrichten vom Frontendserver **[[centos:mail_c6:mta_1|Postfix]]**.   * **[[centos:mail_c7:dovecot_2|10.0.0.70:24]]** das ist unser **LMTP**-Port für die Annahme der Nachrichten vom Frontendserver **[[centos:mail_c6:mta_1|Postfix]]**.
-  * **110** und **143** : **IMAP** und **IMAPs** Port unseres Dovecot-Servers +  * **110** und **995** : **POP3** und **POP3s** Port unseres Dovecot-Servers 
-  * **993** und **995** : **POP3** und **POP3s** Port unseres Dovecot-Servers+  * **143** und **993** : **IMAP** und **IMAPs** Port unseres Dovecot-Servers
  
 Die gesetzte **0.0.0.0** bedeutet, dass auf allen **IPv4** Die gesetzte **0.0.0.0** bedeutet, dass auf allen **IPv4**
Zeile 1379: Zeile 1710:
 </code> </code>
  
 +===== erweiterte Konfiguration(en) =====
 +==== nötige Erweiterungen ====
 +Für folgende Themen wurden separate WIKI-Seiten erstellt:
 +  * [[centos:mail_c7:dovecot_6|Dovecot, Authentifizierung(en)]]
 +  * [[centos:mail_c7:dovecot_2|Dovecot, Anbindung an einen Frontend-Mailserver (Postfix-SMTP-Server)]]
 +  * [[centos:mail_c7:dovecot_4|Dovecot, SSL/TLS - Dovecotverbindungen verschlüsselte Kommunikation]]
 +  * [[centos:mail_c7:dovecot_3|Dovecot, Nachrichten auf dem Server mit SIEVE filtern]]
 +  * [[centos:mail_c7:dovecot_8|Dovecot, Quotas - Speicherquoten für User]]
 +  * [[centos:mail_c7:dovecot_7|Dovecot, Shared Folder und Shared Namespace]]
  
 +==== Lucene Full Text Search Indexing ====
 +Zum Aktivieren der //**[[http://sourceforge.net/projects/clucene/|Lucene]] Full Text Search Indexing**// nutzen wir die Mailplugins **fta** und **fts_lucene**. In der Konfigurationsdatei //**/etc/dovecot/conf.d/10-mail.conf**// tragen wir die nachfolgenden Zeilen nach.
 +   # vim /etc/dovecot/conf.d/10-mail.conf
 +
 +<code bash>...
 +
 +# Space separated list of plugins to load for all services. Plugins specific to
 +# IMAP, LDA, etc. are added to this list in their own .conf files.
 +# Django : 2014-08-05
 +# default: #mail_plugins =
 +#mail_plugins = zlib
 +# Django : 2014-08-06 - Quotaregelung aktiviert
 +# last   : mail_plugins = zlib
 +# mail_plugins = zlib quota
 +# Django : 2014-08-08 - ACL-Plugin für Shared Folders
 +# mail_plugins = zlib quota acl
 +# Django : 2014-08-10 - Loggen der IMAP-Kommandos im Maillog des Servers
 +#mail_plugins = zlib quota acl notify mail_log 
 +# Django : 2014-08-12 - gesperrte Sonderzeichen im Verzeichnisnamen erlauben
 +#mail_plugins = zlib quota acl notify mail_log listescape
 +# Django : 2014-08-14 - Full text search indexing FTS
 +mail_plugins = zlib quota acl notify mail_log listescape fts fts_lucene
 +
 +# Django : 2014-08-12
 +# Mailplugin FS und fts_lucene aktiviert
 +plugin {
 +  fts=lucene
 +  # Lucene-specific settings, good ones are:
 +  fts_lucene = whitespace_chars=@.
 +  # Index new messages immediately after they've been saved/copied. (v2.2.9+)
 +  fts_autoindex = yes
 +  # Skip autoindexing the mailbox if it has more than n \Recent messages (implying 
 +  # that the mailbox is never actually being accessed). (v2.2.9+)
 +  # fts_autoindex_max_recent_msgs = n
 +  # When SEARCH notices that index isn't up to date, it tells indexer to index the 
 +  # mails and waits until it is finished. This setting adds a maximum timeout to 
 +  # this wait. If the timeout is reached, the SEARCH fails with: NO [INUSE] Timeout 
 +  # while waiting for indexing to finish (v2.1+)
 +  # fts_index_timeout = n
 +}
 +
 +...
 +</code>
 +
 +Zum Aktivieren unserer Programmänderung führen wir einen **Reload** des Dovecot-Daemon durch.
 +
 +Der Index wird übrigens automatisch bei jedem Suchvorgang **__auf dem Server__** aktualisiert.
 +
 +Mit der Option **fts_autoindex = yes** werden die Nachrichten automatisch indiziert, wenn diese per **LMTP** eingeliefert werden.
 +
 +Möchte man den Index für einen Benutzer neu anlegen benutzt man folgenden Aufruf:
 +   # doveadm index -u django@nausch.org -q 'INBOX'
 +Mit der Option **-D** kann man sich **Debugmeldungen** mit ausgeben lassen.
 +   # doveadm -D index -u django@nausch.org -q 'INBOX'
 +<code>doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib01_acl_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib15_notify_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_fts_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_listescape_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_mail_log_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib20_zlib_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/lib21_fts_lucene_plugin.so
 +doveadm(root): Debug: Loading modules from directory: /usr/lib64/dovecot/doveadm
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib10_doveadm_sieve_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_lucene_plugin.so
 +doveadm(root): Debug: Module loaded: /usr/lib64/dovecot/doveadm/lib20_doveadm_fts_plugin.so
 +doveadm(django@nausch.org): Debug: auth input: django@nausch.org home=/srv/vmail/nausch.org/django/ uid=10000 gid=10000 quota_rule=*:bytes=10240000000
 +doveadm(django@nausch.org): Debug: Added userdb setting: plugin/quota_rule=*:bytes=10240000000
 +doveadm(django@nausch.org): Debug: Effective uid=10000, gid=10000, home=/srv/vmail/nausch.org/django/
 +doveadm(django@nausch.org): Debug: Quota root: name=User quota backend=maildir args=ignoreunlimited:noenforcing
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=* bytes=10240000000 messages=0
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=INBOX bytes=0 messages=+10240
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=INBOX/Trash bytes=+131072000 messages=0
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=INBOX/Sent ignored
 +doveadm(django@nausch.org): Debug: Quota rule: root=User quota mailbox=INBOX/Archiv bytes=+2560000000 (25%) messages=0
 +doveadm(django@nausch.org): Debug: Quota warning: bytes=10240000000 (100%) messages=0 reverse=no command=quota-warning 100 django@nausch.org
 +doveadm(django@nausch.org): Debug: Quota warning: bytes=9728000000 (95%) messages=0 reverse=no command=quota-warning 95 django@nausch.org
 +doveadm(django@nausch.org): Debug: Quota warning: bytes=8192000000 (80%) messages=0 reverse=no command=quota-warning 80 django@nausch.org
 +doveadm(django@nausch.org): Debug: Quota grace: root=User quota bytes=1024000000 (10%)
 +doveadm(django@nausch.org): Debug: Namespace inbox: type=private, prefix=INBOX/, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/srv/vmail/nausch.org/django/Maildir
 +doveadm(django@nausch.org): Debug: maildir++: root=/srv/vmail/nausch.org/django/Maildir, index=, indexpvt=, control=, inbox=/srv/vmail/nausch.org/django/Maildir, alt=
 +doveadm(django@nausch.org): Debug: acl: initializing backend with data: vfile
 +doveadm(django@nausch.org): Debug: acl: acl username = django@nausch.org
 +doveadm(django@nausch.org): Debug: acl: owner = 1
 +doveadm(django@nausch.org): Debug: acl vfile: Global ACLs disabled
 +doveadm(django@nausch.org): Debug: Namespace : type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=maildir:%h/Maildir:INDEX=/srv/vmail/nausch.org/django//shared/%u:CONTROL=/srv/vmail/nausch.org/django//shared/%u
 +doveadm(django@nausch.org): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt=
 +doveadm(django@nausch.org): Debug: fts: Indexes disabled for namespace 'shared/%u/'
 +doveadm(django@nausch.org): Debug: acl: initializing backend with data: vfile
 +doveadm(django@nausch.org): Debug: acl: acl username = django@nausch.org
 +doveadm(django@nausch.org): Debug: acl: owner = 0
 +doveadm(django@nausch.org): Debug: acl vfile: Global ACLs disabled
 +doveadm(django@nausch.org): Debug: Namespace : type=private, prefix=, sep=, inbox=no, hidden=yes, list=no, subscriptions=no location=fail::LAYOUT=none
 +doveadm(django@nausch.org): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
 +doveadm(django@nausch.org): Debug: fts: Indexes disabled for namespace ''
 +</code>
 +
 +Den Index aller Benutzer würde man mit folgendem Aufruf anstoßen:
 +   # doveadm index -A -q 'INBOX'
 +
 +Mit dem nun vorhandenen Suchindex'n **lucene-indexes** in den Mail-Verzeichen der Nutzer, können nunmehr Volltextsuchen __**auf dem Server**__ wesentlich effizienter und schneller ausgeführt werden.
 ===== Systemstart ===== ===== Systemstart =====
 ==== erster manueller Start ==== ==== erster manueller Start ====
Zeile 1472: Zeile 1916:
 </code> </code>
  
-Im Verzeichnis //**/srv/vmail/**// wurden die zugehörigen Verzeichnisse und die Nachricht selbst, alos die Datei **__1407165099.M887118P3930.vml000070.dmz.nausch.org,S=409,W=422__** angelegt.+Im Verzeichnis //**/srv/vmail/**// wurden die zugehörigen Verzeichnisse und die Nachricht selbst, also die Datei **__1407165099.M887118P3930.vml000070.dmz.nausch.org,S=409,W=422__** angelegt.
 <code># tree /srv/vmail/nausch.org/django/ -alF <code># tree /srv/vmail/nausch.org/django/ -alF
 /srv/vmail/nausch.org/django/ /srv/vmail/nausch.org/django/
Zeile 1487: Zeile 1931:
 </code> </code>
  
-Wir können uns nun auch die Datei/eMAil natürlich auch direkt auf der Konsole ansehen.+Wir können uns nun auch die Datei/eMail natürlich auch direkt auf der Konsole ansehen.
    # cat /srv/vmail/nausch.org/django/Maildir/new/1407165099.M887118P3930.vml000070.dmz.nausch.org\,S\=409\,W\=422     # cat /srv/vmail/nausch.org/django/Maildir/new/1407165099.M887118P3930.vml000070.dmz.nausch.org\,S\=409\,W\=422 
 <code>Return-Path: <michael@nausch.org> <code>Return-Path: <michael@nausch.org>
Zeile 1775: Zeile 2219:
   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**   * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
-~~DISCUSSION~~ +
-~~AUTOTWEET:~~+
  • centos/mail_c7/dovecot_1.1407178947.txt.gz
  • Zuletzt geändert: 04.08.2014 19:02.
  • (Externe Bearbeitung)