%
% Achtung: Dateien muessen mit latin1-Encoding gespeichert werden!
% Attention: Files must be saved using latin1 encoding!
%

\chapter{VMail (eisfair-1) - Mailserver f"ur systemunabh"angige (virtuelle) E-Mailkonten}
\emph{Version 0.5.0 - Stand 2006-04-06\\
(c) Jens Vehlhaber  <jvehlhaber[at]buchenwald[dot]de>}

\section{Allgemeines}
\begin{itemize}
\item Das Paket wurde entwickelt als Domain-MX oder Backup-MX Server f"ur mittlere
      bis gr"o"sere Benutzergruppen.
\item Es lassen sich beliebig viele Domains unabh"angig voneinander und auch
      unabh"angig von den Linux-Systembenutzern, verwalten.
      (h.mueller@domain1.tld ist ein anderes Postfach als
      h.mueller@domain2.tld)
\item Benutzer, Domains und Fetchmaildaten werden ohne Neustart im laufenden
      Betrieb hinzugef"ugt oder gel"oscht. (Benutzerdaten in MySQL Tabellen)
\item Es wurde generell auf Performance-bremsende Scriptsprachen im E-Mail-Weg
      verzichtet.
\item Nutzung des schnellen Maildir+ an Stelle des Mbox Formates zur
      Mailspeicherung.
\item Paralleler Einsatz mehrere Virenscanner "uber die Milter Schnittstelle
      m"oglich.
\end{itemize}

Folgende Programme sind im Paket enthalten:
\begin{itemize}
\item Postfix: Der eigentliche MTA (Mail Transfer Agent) welcher die E-Mail vom
      Absender zum Empf"anger transportiert.
\item Courier: POP3 und IMAP erm"oglicht den Zugriff auf die Postf"acher der
      virtuellen Benutzer.
\item DRACD Dynamic Relay Authorization Deamon ist eine M"oglichkeit, einem
      externen Benutzer das Versenden von Mails zu erlauben. Auch bekannt unter
      ''POP before SMTP''.
\item GPS: Der Grey Listing Daemon soll das Spamunwesen etwas eind"ammen, da
      etliche Viren und Spamtools das Zwischenspeichern und erneute Versenden von
      Nachrichten mit gleichen Absenderdaten noch nicht beherrschen.
\item CLAMSMTPD: ist eine Schnittstelle zum Virenscanner ClamAV. Gefundene
      Viren werden ohne R"uckmeldung an den zumeist gef"alschten Absender gel"oscht.
\item MAILDROP: "ubernimmt die Auslieferung der E-Mails in die Postf"acher und das
      Abarbeiten eventuell vorhandener ''.mailfilter'' Dateien.
\item Fetchmail: zum Abholen der E-Mailnachrichten von externen Servern.
\end{itemize}

Alle Benutzerverzeichnisse werden automatisch erstellt, wenn entweder eine
E-Mail zugestellt wird oder der Benutzer sich das erste mal per POP3 oder
IMAP anmeldet.\\
Die Benutzerdaten in den MySQL Tabellen k"onnen "uber den Men"upunkt
''User \& domain administration'' in einem speziellen Curses-Programm einfach
und schnell verwaltet werden. Ein Suchdialog erlaubt die Anzahl der
angezeigten Benutzeintr"age zu reduzieren und damit das schnelle Finden und
Bearbeiten von Benutzern auch in sehr gro"sen Datenbest"anden.


\section{Aufbau der E-Mail Benutzer-Datenbanken}
\subsection{Benutzer-Datenbank vmaildata.users}
\begin{itemize}
\item email\\
      Vollst"andiger E-Mail Name testuser@domain.tld\\
      Die Domain muss auch in der Tabelle vmaildata.domains hinterlegt sein.
\item cryptpass\\
      Das Benutzerpasswort (kodiert) f"ur den POP3/IMAP Zugang und die SMTP
      Authentifizierung.
\item clearpass\\
      Das Benutzerpasswort im Klartext wird nur f"ur spezielle Authentifizierungen
      ben"otigt und ist sonst leer.
\item username\\
      Enth"alt einen zus"atzlichen Benutzername. Dieser wird aber weder von
      Postfix noch von Courier ben"otigt.
\item mailprotect\\
      Hier k"onnen zus"atzliche Filterklassen individuell f"ur jeden Benutzer
      aktiviert werden. Folgende Eintr"age sind m"oglich:
      \begin{itemize}
      \item 0: Es werden keine zus"atzlichen Filter genutzt.
      \item 1: Weist alle Mails zur"uck, die ung"ultige Zeichen im Absenderhostnamen
               enthalten, keinen vollst"andigen Domainnamen als Absenderhost verwenden
               oder deren Absenderhost keinem DNS Server bekannt ist.
      \item 2: Nutzt die access\_client Filterliste zum Blocken unerw"unschter IP-Bereiche
               und Absendernamen. (wird nicht mitgeliefert)
      \item 3: Nutzt die M"oglichkeiten von 1 und 2 gemeinsam.
      \item 9: Es werden nur interne E-Mailnachrichten angenommen.
      \end{itemize}
\item quota\\
      Hiermit kann die maximale Postfachgr"o"se auf der Festplatte begrenzt
      werden. Der Eintrag erfolgt in Byte. Die 0 steht f"ur keine Begrenzung.
\item active\\
      Erm"oglicht ein komplettes deaktivieren des Postfaches durch Eintragen einer 0.
\end{itemize}


\subsection{Domain-Datenbank vmaildata.domains}
\begin{itemize}
\item domain\\
  Name der auf diesem Server gehosteten oder zur Weiterleitung vorgesehenen
  Domain.
\item transport\\
  Transport Service der Domain. Vorgabewert ist dabei immer ''maildrop:''.
\end{itemize}
\begin{tabular}{p{4cm}|p{8cm}}
  ''maildrop:''        &E-Mailempfang f"ur die virtuellen Postf"acher.\\
  ''smtp:192.168.1.1'' &Weiterleitung an einen anderen Mailserver.
                       (ben"otigt Eintrag in der forwardings Datenbank!)\\
  ''uucp:192.168.1.1'' &Weiterleitung durch UUCP an einen anderen Mailserver.
                       (ben"otigt Eintrag in der forwardings Datenbank und
                       das UUCP Paket!)\\
  ''fax:localhost''    &Weiterleitung zum Faxdienst.
                       (ben"otigt das Eisfax Paket Version > 1.2.0)\\
  ''sms:localhost''    &Weiterleitung zum SMS-Dienst. (ben"otigt das YAPS Paket)\\

\end{tabular}

\subsection{Forward-Datenbank vmaildata.forwardings}
\begin{itemize}
\item source\\
      Enth"alt die urspr"ungliche Empf"anger-Adresse.
\item destination\\
      Enth"alt die neue Empf"anger-Adresse(n).
\end{itemize}

\begin{tabular}{p{3cm}|p{3cm}|p{6cm}}
      source:          &destination:    &Auswirkung\\
\hline
      user@domain.tld  &foo@domain.tld  &Direkte Weiterleitung. Kann auch f"ur Alias
                                         Namen verwendet werden, welche aus
                                         mehreren E-Mail Eintr"agen bestehen.
                                         (Mailinglisten)\\
      @domain.tld      &user@domain.tld &Leitet alle nicht zustellbaren E-Mails der
                                         Domain domain.tld an user@domain.tld
                                         weiter.\\
      @domain.tld      &@another.tld    &Hiermit leitet man ganze Dom"anen um.
                                         Jeder E-Mailname in der domain.tld
                                         Dom"ane wird an den selben E-Mailnamen
                                         in der Dom"ane another.tld umgeleitet.\\
      @domain.tld      &@domain.tld     &Derartige Eintr"age werden bei Weiterleitungen
                                         kompletter Domains, ohne auf dem Server
                                         eingetragene Mailbenutzer, ben"otigt.\\

\end{tabular}

\hinweis{Mehrere Eintr"age im Feld destination m"ussen durch Trennzeichen
         wie Zeilenumbruch, Semikolon, Komma, Leerzeichen, voneinander
         getrennt werden.}


\section{Konfiguration}
Die Konfiguration kann "uber den Men"upunkt ''Edit Configuration'' ge"andert
werden. Nach Beendigung des Editors erfolgt eine automatische Fehlerpr"ufung.
Werden Fehler festgestellt, so sollten die entsprechenden Eintr"age in jedem
Fall korrigiert werden!\\

\begin{description}
\config{START\_VMAIL}{START\_VMAIL}{STARTVMAIL}
    {Legt fest, ob der E-Mail Server automatisch gestartet wird.

    G"ultige Werte: \emph{yes,no}}

\config{VMAIL\_LOGIN\_WITH\_MAILADDR}{VMAIL\_LOGIN\_WITH\_MAILADDR}{VMAILLOGINWITHMAILADDR}
    {Wenn der Wert auf 'yes' steht, muss zum Anmelden an den Server die
    komplette E-Mailadresse verwendet werden.\\
    So k"onnen Benutzer in unterschiedlichen Dom"anen den gleichen Namen
    tragen. Im Beispiel sind die folgenden Namen somit unterschiedlichen
    Postf"achern zugeordnet:\\
    h.mueller@foo.tld\\
    h.mueller@bar.tld

    G"ultige Werte: \emph{yes,no}}

\config{VMAIL\_MAILDIR\_ROOT}{VMAIL\_MAILDIR\_ROOT}{VMAILMAILDIRROOT}
    {Hiermit kann das Basisverzeichnis f"ur alle Postf"acher alternativ auf
    einen andere Partition (/data) gelegt werden. Bereits vorhandene Maildaten
    werden bei einem Wechsel jedoch nicht mit verschoben.

    G"ultige Werte: \emph{/var/spool/postfix/virtual, /data/vmail/virtual}}

\config{START\_POSTFIX}{START\_POSTFIX}{STARTPOSTFIX}
    {Legt fest, ob der eigentliche MTA (Mail Transfer Agent), welcher die
    E-Mail vom Absender zum Empf"anger transportiert, als Dienst gestartet
    werden soll.

    G"ultige Werte: \emph{yes,no}}

\config{POSTFIX\_SMTP\_TLS}{POSTFIX\_SMTP\_TLS}{POSTFIXSMTPTLS}
    {Aktiviert Transportsicherheit f"ur das Senden von E-Maildaten.

    G"ultige Werte: \emph{yes,no}}

\config{POSTFIX\_RELAY\_FROM\_NET\_N}{POSTFIX\_RELAY\_FROM\_NET\_N}{POSTFIXRELAYFROMNETN}
    {E-Mailversand aus diesen Netzen wird generell akzeptiert.

    Beispiel: \emph{3}}

\config{POSTFIX\_RELAY\_FROM\_NET\_x}{POSTFIX\_RELAY\_FROM\_NET\_x}{POSTFIXRELAYFROMNETx}
    {Netzwerk aus dem der Versand von E-Mail ohne DRACD u."a. akzeptiert
    wird. (Internes Netz)

    Beispiel: \emph{172.16.0.0/16}}

\config{POSTFIX\_DRACD}{POSTFIX\_DRACD}{POSTFIXDRACD}
    {Erm"oglicht einem externen Benutzer das Versenden von E-Mails. Auch
    bekannt unter dem Namen ''POP before SMTP''.

    G"ultige Werte: \emph{yes,no}}

\config{POSTFIX\_DRACD\_RELAYTIME}{POSTFIX\_DRACD\_RELAYTIME}{POSTFIXDRACDRELAYTIME}
    {Setzt die Zeit in Minuten, in der die IP-Adresse des E-Mailversenders
    akzeptiert wird.

    Beispiel: \emph{30}}

\config{POSTFIX\_GLD}{POSTFIX\_GLD}{POSTFIXGLD}
    {Aktiviert als Spamschutz den Greylisting Dienst.

    G"ultige Werte: \emph{yes,no}}

\config{POSTFIX\_GLD\_MINTIME}{POSTFIX\_GLD\_MINTIME}{POSTFIXGLDMINTIME}
    {Legt die Zeit in Sekunden fest, die ein Mailserver warten muss, bis seine
    E-Mail akzeptiert wird. Einige Mailserver sind bereits in der Whitelist
    MySQL Datenbank definiert und werden so auch ohne Verz"ogerung angenommen.

    Beispiel: \emph{300}}

\config{POSTFIX\_GLD\_CLR\_ONE}{POSTFIX\_GLD\_CLR\_ONE}{POSTFIXGLDCLRONE}
    {Anzahl in Tagen, die ein Eintrag einer erfolglosen einmaligen E-Mailanfrage
    in der Greylisting Datenbank verbleiben soll.

    Beispiel: \emph{1}}

\config{POSTFIX\_GLD\_CLR\_UNUSED}{POSTFIX\_GLD\_CLR\_UNUSED}{POSTFIXGLDCLRUNUSED}
    {Anzahl in Tagen, die ein Eintrag mit weniger als 4 erfolgreichen
    E-Mailzustellungen in der Greylisting Datenbank verbleiben soll.

    Beispiel: \emph{30}}

\config{POSTFIX\_RBL}{POSTFIX\_RBL}{POSTFIXRBL}
    {Nutzung einer oder mehrerer externer Realtime Blackhole List Server zur
    Spamabwehr.

    G"ultige Werte: \emph{yes,no}}

\config{POSTFIX\_RBL\_N}{POSTFIX\_RBL\_N}{POSTFIXRBLN}
    {Anzahl verwendeter externer RBL-Server.

    Beispiel: \emph{2}}

\config{POSTFIX\_RBL\_x\_SERVER}{POSTFIX\_RBL\_x\_SERVER}{POSTFIXRBLxSERVER}
    {Name des externen RBL-Servers.

    Beispiel: \emph{relays.ordb.org}}

\config{POSTFIX\_REJECT\_UNKN\_CLIENT}{POSTFIX\_REJECT\_UNKN\_CLIENT}{POSTFIXREJECTUNKNCLIENT}
    {E-Mails von Mailservern ohne DNS-Eintrag werden verweigert. Das kann zu
    Problemen f"uhren, da einige Mailserver leider durch Firewalls u."a. ihre
    E-Mail ohne korrekten DNS-Hostnamen versenden.
    Diese Option entspricht dem Benutzereintrag mailprotect=1.

    Voreinstellung: \emph{no}}

\config{POSTFIX\_REJECT\_UNKN\_SEND\_DOM}{POSTFIX\_REJECT\_UNKN\_SEND\_DOM}{POSTFIXREJECTUNKNSENDDOM}
    {E-Mails von unbekannten Absender-Domains (wenn diese keinen DNS Record
    vom Typ MX oder A besitzen) werden verweigert.

    G"ultige Werte: \emph{yes,no}}

\config{POSTFIX\_REJECT\_NON\_FQDN\_HOST}{POSTFIX\_REJECT\_NON\_FQDN\_HOST}{POSTFIXREJECTNONFQDNHOST}
    {E-Mails von Absendern die keinen vollst"andig g"ultigen Hostnamen
    "ubermitteln (host.domain.tld), werden verweigert.

    G"ultige Werte: \emph{yes,no}}

\config{POSTFIX\_MIME\_HEADER\_CHECK}{POSTFIX\_MIME\_HEADER\_CHECK}{POSTFIXMIMEHEADERCHECK}
    {Die Zustellung von ausf"uhrbaren Programmen (EXE, BAT...) als E-Mail-
    Anhang, wird mit einem entsprechenden Hinweistext an den Absender
    unterbunden.

    G"ultige Werte: \emph{yes,no}}

\config{POSTFIX\_HEADER\_N}{POSTFIX\_HEADER\_N}{POSTFIXHEADERN}
    {Durch Filtern der E-Mail-Header der Absender k"onnen unerw"uschte Absender
    ausgefiltert werden. \\
    Hier wird die Anzahl der verwendeten Filter eingetragen.

    Beispiel: \emph{1}}

\hinweis{Globale Filtereintr"age sollten nur sehr sparsam verwendet werden,
         da sie alle Postf"acher betreffen. Und eventuell m"ochte der eine oder
         andere E-Mailnutzer gerade die Nachricht haben, die hier ausgefiltert
         wird.}

\config{POSTFIX\_HEADER\_x\_CHECK}{POSTFIX\_HEADER\_x\_CHECK}{POSTFIXHEADERxCHECK}
    {Filtereintrag.}

\begin{verbatim}
    Beispiel:  '^Date:.*[+-](1[4-9]|2\d)\d\d$'
\end{verbatim}

\config{POSTFIX\_HEADER\_x\_HANDL}{POSTFIX\_HEADER\_x\_HANDL}{POSTFIXHEADERxHANDL}
    {Handlung bei Zutreffen des Filtereintrages\\
    G"ultige Operationen sind:\\
    DISCARD  Die E-Mail wird ohne R"uckmeldung gel"oscht\\
    DUNNO    Keine Operation ausf"uhren\\
    FILTER   Ein Filter wird gestartet\\
    HOLD     Die Mail wird gehalten\\
    IGNORE   Die aktuelle Zeile wird gel"oscht\\
    OK       Die E-Mail wird angenommen\\
    PREPEND  Ein zus"atzlicher Header wird eingef"ugt\\
    REDIRECT Die E-Mail wird umgeleitet\\
    REPLACE  Die aktuelle Zeile wird ersetzt\\
    REJECT   Die E-Mail wird abgelehnt\\
    WARN     Eine Warnung wird in das Logfile eingetragen\\
    450 [Text] Die E-Mail wird mit einem tempor"aren Fehler abgelehnt\\
    550 [Text] Die E-Mail wird mit einem permanenten Fehler abgelehnt\\

    Beispiel: \emph{REJECT invalid timezone}}

\hinweis{F"ur Mailinglisten k"onnen hier automatisch Reply-To: Header
         eingef"ugt werden.\\
         POSTFIX\_HEADER\_x\_CHECK='To:.*mailing1@domain.tld'\\
         POSTFIX\_HEADER\_x\_HANDL='PREPEND Reply-To: mailing1@domain.tld'
         }

\config{POSTFIX\_CLIENT\_N}{POSTFIX\_CLIENT\_N}{POSTFIXCLIENTN}
    {Hier k"onnen unerw"unschte Mailversender an Hand ihrer Netzwerkadresse
    (IP oder DNS-Name) ausgesperrt werden.\\
    Alle Computer, die keine offiziellen, also f"ur Antworten erreichbare
    E-Mailserver sind, sollten auch keine E-Mail direkt zustellen.

    Beispiel: \emph{1}}

\hinweis{Etliche Filtereintr"age zum Ausfiltern von unerw"unschten E-Mailversendern
         sind bereits in der Datei:\\
         /etc/postfix/access\_clientblocks.pcre.default vordefiniert.}

\config{POSTFIX\_CLIENT\_x\_CHECK}{POSTFIX\_CLIENT\_x\_CHECK}{POSTFIXCLIENTxCHECK}
    {Hier steht z. B. die Absenderkennung eines PPP-Dialin Zuganges.}
\begin{verbatim}
    Beispiel: '^ras[0-9]'
\end{verbatim}

\config{POSTFIX\_CLIENT\_x\_HANDL}{POSTFIX\_CLIENT\_x\_HANDL}{POSTFIXCLIENTxHANDL}
    {Nat"urlich sollte der Absender auch informiert werden, warum wir seine
    E-Mail nicht wollen. Es k"onnte ja aus versehen doch kein Spam sein.\\
    Ferner sind alle unter POSTFIX\_HEADER\_x\_HANDL aufgelisteten Operationen
    anwendbar.

    Beispiel: \emph{550 No RAS client. Use an authorized relay}}

\config{POSTFIX\_AV\_CLAMAV}{POSTFIX\_AV\_CLAMAV}{POSTFIXAVCLAMAV}
    {Nutzung von ClamAV als Virenscanner.

    G"ultige Werte: \emph{ yes,no}}

\config{POSTFIX\_AV\_VIRUS\_INFO}{POSTFIX\_AV\_VIRUS\_INFO}{POSTFIXAVVIRUSINFO}
    {Neben dem eigentlichen Adressaten wird auch der hier eingetragene
    Empf"anger "uber gefundenen Virusmails informiert.\\
    Bleibt der Eintrag leer, so erfolgt keine Benachrichtigung.

    Beispiel:  \emph{root@localhost}}

\config{POSTFIX\_AV\_QUARANTINE}{POSTFIX\_AV\_QUARANTINE}{POSTFIXAVQUARANTINE}
    {Speichert die Virusmail in einem speziellen Verzeichnis unter
    /var/spool/postfix/var/clamav/quarantine

    G"ultige Werte:  \emph{yes,no}}

\config{POSTFIX\_AV\_SCAN\_N}{POSTFIX\_AV\_SCAN\_N}{POSTFIXAVSCANN}
    {Anzahl zus"atzliche Milter-basierter Virenscanner.\\
     Mehrere Virenscanner k"onnen parallel verwendet werden.}

\config{POSTFIX\_AV\_SCAN\_x\_USE}{POSTFIX\_AV\_SCAN\_x\_USE}{POSTFIXAVSCANxUSE}
    {Aktiviert den zus"atzlichen Scanner.

    G"ultige Werte:  \emph{yes,no}}

\config{POSTFIX\_AV\_SCAN\_x\_SOCK}{POSTFIX\_AV\_SCAN\_x\_SOCK}{POSTFIXAVSCANxSOCK}
    {Socket oder Port der Milter-Schnittstelle.

    Beispiel:  \emph{unix:/var/run/f-prot-milter.sock}
    oder:      \emph{inet:12200@127.0.0.1}}

\config{POSTFIX\_DSPAM}{POSTFIX\_DSPAM}{POSTFIXDSPAM}
    {Schaltet den Antispam Dienst DSPAM zu. E-Mails werden dadurch mit dem
    X-DSPAM Header markiert.

    G"ultige Werte:  \emph{yes,no}}

\config{POSTFIX\_DSPAM\_GLOBAL\_DATA}{POSTFIX\_DSPAM\_GLOBAL\_DATA}{POSTFIXDSPAMGLOBALDATA}
    {Erkannte oder trainierte Spamsignaturen werden f"ur alle E-Mailpostf"acher
    und Domains verwendet. Wird der Wert auf 'no' gesetzt, dann gelten f"ur
    jeden E-Mailbenutzer individuelle Signaturen.

    G"ultige Werte:  \emph{yes,no}}

\config{POSTFIX\_DSPAM\_SUBJECT}{POSTFIX\_DSPAM\_SUBJECT}{POSTFIXDSPAMSUBJECT}
    {Erkannten Spam-E-Mails wird eine Kennung im Betreff vorangestellt.
    Zus"atzlich wird im Header immer der Wert ''X-DSPAM-Result: Spam'' gesetzt.

    Beispiel:  \emph{[SPAM]}}

\config{POSTFIX\_SMARTHOST}{POSTFIX\_SMARTHOST}{POSTFIXSMARTHOST}
    {Hier kann der Name oder die IP eines E-Mailserver, z. B. eines Providers, eingetragen
    werden, welcher den gesamtem Mailverkehr weiterleitet.\\
    Bei Nutzung als offizieller, "offentlich erreichbarer Mailserver einer
    Domain, wird dieser Eintrag nicht ben"otigt und bleibt leer.

    Beispiel: \emph{smtp.provider.tld}}

\config{POSTFIX\_SMARTHOST\_USER/POSTFIX\_SMARTHOST\_PASS/POSTFIX\_SMARTHOST\_TLS}{POSTFIX\_SMARTHOST\_USER/POSTFIX\_SMARTHOST\_PASS/POSTFIX\_SMARTHOST\_TLS}{POSTFIXSMARTHOSTUSER}
    {Die Zugangskennung und "Ubertragungssicherheit zum externen Mailserver
    wird hier eingetragen.\\
    Auch diese Felder sind im Normalfall (Providereinsatz) nicht in Nutzung.}

\config{START\_COURIER}{START\_COURIER}{STARTCOURIER}
    {Startet den POP3/IMAP Dienst.

    G"ultige Werte: \emph{yes,no}}

\config{COURIER\_POP3IMAP\_TLS}{COURIER\_POP3IMAP\_TLS}{COURIERPOP3IMAPTLS}
    {Aktiviert Transportsicherheit f"ur das Abholen von E-Maildaten.

    G"ultige Werte: \emph{yes,no}}


\config{START\_FETCHMAIL}{START\_FETCHMAIL}{STARTFETCHMAILV}
    {Startet den Fetchmail Dienst zur Abholung von E-Mail auf externen
    Servern. Die Daten zur Abfrage werden bei jedem Start aus der zugeh"origen
    MySQL-Datenbank entnommen.

    G"ultige Werte: \emph{yes,no}}

\config{FETCHMAIL\_CRON\_SCHEDULE}{FETCHMAIL\_CRON\_SCHEDULE}{FETCHMAILCRONSCHEDULE}
    {Startzeit f"ur die Abfrage.

    Beispiel: \emph{'5,35 * * * *'}}

\config{FETCHMAIL\_TIMEOUT}{FETCHMAIL\_TIMEOUT}{FETCHMAILTIMEOUTV}
    {Zeit in Sekunden die gewartet wird, bevor ein Server als nicht erreichbar
    gilt.

    Beispiel: \emph{60}}

\config{FETCHMAIL\_POSTMASTER}{FETCHMAIL\_POSTMASTER}{FETCHMAILPOSTMASTER}
    {Empf"angt alle nicht zustellbaren E-Mail eines Fetchmailabrufes.

    Beispiel: \emph{postmaster}}

\config{COURIER\_LOG\_FACILITY}{COURIER\_LOG\_FACILITY}{COURIERLOGFACILITY}
    {Hier wird der Syslog Kanal festgelegt. So k"onnen die POP3/IMAP
    Nachrichten, nach Anpassen der Syslog-Einstellungen, in eine andere
    Logdatei umgeleitet werden.

    G"ultige Werte: \emph{mail, auth, authpriv, console or local0 ... local7.}}
\end{description}


\section{Das VMail Men"u}
Das VMail Hauptmen"u ist "uber den Men"upunkt ''Service administration'' im
zentralen Setup-Programm zu erreichen. Es ist wie folgt aufgebaut:
\begin{itemize}
\item View documentation\\
      Zeigt die Dokumentation an.
\item Edit configuration
      Damit kann die Konfigurationsdatei des VMAIL-Paket bearbeitet werden.
\item Advanced configuration file handling\\
      Erm"oglicht eine Versionsverwaltung der VMAIL-Konfigurationsdatei.
\item Start mail services\\
      Hier werden alle aktivierten E-Mailprogramme gestartet.
\item Stop mail services\\
      Hier werden alle laufenden E-Mailprogramme angehalten.
\item Show status\\
      Zeigt den Status alle E-Mail Daemons.
\item User \& domain administration\\
      Untermen"u f"ur den direkten Zugriff auf die in MySQL gespeicherten
      E-Mail Benutzerdaten und Dom"anen.
\item Mail Tools\\
      Enth"alt einige Zusatzprogramme z. B. zum Auflisten der Warteschlangen.
\item Mail modules\\
      Hier erfolgt der Zugriff auf E-Mail Zusatzprogramme wie z. B. WEBMAIL
      oder UUCP.
\end{itemize}

\subsection{Die User \& domain administration}
\begin{itemize}
\item E-Mail user administration\\
      Erm"oglicht die Benutzerverwaltung aller E-Mail Beutzer. Zum schnellen
      Erfassen vieler Benutzer kann im Benutzererfassungsdialog die Funktionstaste
      ''F2''=Speichern verwendet werden. Der Dialog muss so nicht f"ur
      jeden Benutzer neu aufgerufen werden.
\item E-Mail domain administration\\
      Hier werden die auf dem E-Mailserver gehosteten Domains eingetragen.
\item E-Mail forwarding administration\\
      Hier k"onnen Um- und Weiterleitungen, Aliaseintr"age, Mailinglisten u. a.
      definiert werden.
\item E-Mail recipient access administration\\
      Hier k"onnen E-Mailadressen von der RBL Pr"ufung ausgenommen (abuse@), oder
      auch komplett f"ur externe Sender gesperrt werden.
\item Greylisting - whitelist network\\
      Die hier eingetragenen Netzwerke passieren das Greylisting ohne Wartezeit.
\item Greylisting - greylist entries\\
      Zeigt alle aktuellen Eintr"age der Greylisting Tabelle
\item Edit blacklist\\
      Hier k"onnen Server und Netzwerke bekannter Spammer selbst gesperrt werden.
\item Fetchmail user administration\\
      In diesem Men"u kann der Administrator eigene Fetchmailabfragen
      definieren.
\item Import data from SQL file\\
      Eine im Verzeichnis /tmp vorhandene SQL-Tabelle kann hier importiert
      werden. Ein Beispiel f"ur den Aufbau der Datei ist:\\
      /etc/postfix/postfix-provider.sql
\end{itemize}

\subsection{Mail tools}
\begin{itemize}
\item View mail queue\\
      Zeigt alle zwischengespeicherten E-Mails, die auf Auslieferung warten.
\item Force queue run\\
      Probiert ein erneutes Zustellen der in der Queue liegenden E-Mails.
\item Pocess mail queue\\
      Erm"oglicht den direkten Zugriff auf einzelne Nachrichten in alle Queues.
\item Fetchmail force get mail run\\
      Externe E-Mailpostf"acher werden mit Fetchmail von Hand abgefragt.
\end{itemize}


\section{DSPAM trainieren}

F"ur das schnelle Traning gibt es 2 Scripte im Verzeichnis /usr/local/dspam:\\
\begin{itemize}
\item hamfeed.sh   - nutzt Nichtspam E-Mails aus dem Verzeichnis /tmp/ham
\item spamfeed.sh  - nutzt Spam E-Mails aus dem Verzeichnis /tmp/spam
\end{itemize}
Die E-Mails m"ussen dabei im Maildir Format vorliegen, also jede E-Mail in
einer eigenen Datei.\\
Wenn DSPAM mit dem Parameter POSTFIX\_DSPAM\_GLOBAL\_DATA='no' betrieben wird,
muss der entsprechende E-Mail Benutzer beim Aufruf angef"ugt werden. Z. B.:
    spamfeed.sh user@virtual.test\\
\\
Wenn eine E-Mail f"alschlich als Spam deklariert wird, so teilt man das dem
DSPAM-Service durch eine Weiterleitung an notspam@localhost mit.\\
Spam kann durch eine Weiterleitung an spam@localhost gemeldet werden.


\section{Mail zu Fax Service}

Im VMail Paket ist eine feste Schnittstelle zu einem installierten Eisfax
Dienst integriert, welcher das Versenden von Faxnachrichten erm"oglicht.\\
\\
Dazu muss die E-Mail Zieladresse wie folgt aufgebaut sein:\\
\\
    faxg3/[<Modem>/]<Faxnummer>@localhost\\
\\
    Beispiel: faxg3/0221556677@localhost  oder\\
              faxg3/modem1/0221556677@localhost\\

Soll an Stelle von "localhost" eine andere Domain verwendet werden, dann ist
die Domain-Datenbank noch um den entsprechenden Eintrag zu erweitert:

\begin{tabular}{p{5cm}|p{5cm}}
Domain:          &Transport:\\
\hline
fax.domain.tld   &fax:localhost\\
\end{tabular}

Weitere optionale Parameter in der Faxadresse sind der Eisfax Dokumentation zu
entnehmen.


\section{Mail zu SMS Service}

Zur Nutzung muss YAPS installiert sein und ein entsprechender zus"atzlicher
Eintrag in der Domain-Datenbank stehen. Dabei k"onnen nur Benutzer mit einem
E-Mailkonto auf dem Server den Service nutzen.\\

\begin{tabular}{p{5cm}|p{5cm}}
Domain:          &Transport:\\
\hline
sms.domain.tld   &sms:localhost\\
\end{tabular}

Die "Ubertragung der SMS-Nummer erfolgt dabei in der E-Mail Adresse:\\
<01729999999@sms.domain.tld>


\section{E-Mails abrufen mit Fetchmail}

Zum Abholen von Nachrichten sind folgende Werte in die Fetchmail-SQL-Tabelle
einzutragen.
\begin{itemize}
\item Loginname\\
  Je nach Provider mitunter auch als komplette E-Mailadresse:\\
  testname\\
  testname@domain.tld\\
\item Servername\\
  POP3 Server des Providers:\\
  pop.domain.tld\\
\item Recipient
  Empf"anger der abgerufenen E-Mails:\\
  user@virtual.test\\
\item Options\\
  Die Optionen k"onnen miteinander durch Leerzeichentrennung kombiniert werden:\\
  ssl      - der E-Mailabruf erfolgt "uber SSL auf Port 995\\
  keep     - abgerufene Nachrichten werden nicht gel"oscht\\
  no keep  - abgerufene Nachrichten werden gel"oscht\\
  fetchall - alle E-Mails (nicht nur neue) werden abgerufen\\
\item Active\\
  Steht hier eine 1 dann wird der Eintrag verwendet.\\
  Bei 0 bleibt er zwar in der Datenbank, ruft aber keine E-Mails ab.\\
\end{itemize}


\section{MySQL-Maildropfilter}

Maildrop verf"ugt "uber eine umfangreiche scriptbasierte Filtersprache. Sie erlaubt
dem Postfacheigent"umer, E-Mails in unterschiedlichen Ordnern abzulegen oder Kopien und
auch automatische Antworttexte (Autoreply, ''Out of office message'') zu versenden.\\
Da jedoch bisher alle Postfachdaten in SQL-Tabellen abgelegt wurden, bestand eine
Herausforderrung darin, m"ogliche Filter auch in dieser Form zu speichern. Dabei
sollten diese um eine zeitabh"angige Komponente erweitert werden, welche die
Unterscheidung zwischen: \begin{itemize}
\item  zeitweise verwendeten Filtereintr"agen wie automatischen Antworttexten und
       Weiterleitungen sowie\\
\item  permanent genutzten Filtern, welche z. B. nach Absendern filtern,\\
\end{itemize} umsetzt.
Zwischenzeitliche Betrachtungen des VDA-E Patch, welcher Postfix-Virtual um einen
sehr einfachen Filter erweitert, zeigten, das dieser im Vergleich zu Maildrop noch
nicht "uber den gew"unschten Funktionsumfang verf"ugt.\\
Deshalb wurde ein Programm geschrieben, welches in regelm"a"sigen Zeitabst"anden eine
MySQL Tabelle nach zu aktivierenden Filtereintr"agen durchsucht. Diese werden dann
nach den auch unter SqWebmail g"ultigen Regeln erstellt.\\



\section{Anpassung der Logdateien}

F"ur eine bessere Lesbarkeit der Logeintr"age k"onnen die Mail-Daten in eigene
Dateien abgelegt werden. Dazu sind in der Eisfair base-Konfiguration folgende
Einstellungen n"otig:
\begin{verbatim}
    SYSLOGD_DEST_N='2'
    SYSLOGD_DEST_1='*.*;mail.none /var/log/messages'
    SYSLOGD_DEST_1_LOGROTATE='/etc/init.d/syslogd restart'
    SYSLOGD_DEST_2='mail.* /var/log/log.vmail'
    SYSLOGD_DEST_2_LOGROTATE=''
\end{verbatim}
So landen alle Mail-Logeintr"age in der Datei /var/log/log.vmail.
