%
% ssmtp.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel Ssmtp %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Achtung: Dateien muessen mit latin1-Encoding gespeichert werden!
% Attention: Files must be saved using latin1 encoding!
%

\chapter{Das sSMTP-Paket}

\section{Die Einleitung}

    Das sSMTP-Programm ist ein send-only Mail Transfer Agent (MTA) und ist
    eine schlanke Alternative zur send-only-Konfiguration des mail-Paketes
    von J"urgen Edner. Das Paket ist f"ur \eisfair-Systeme gedacht, die
    nicht als Mailserver eingerichtet sind, aber dennoch Statusmeldungen,
    z.B. Cron-Output, per E-Mail versenden sollen.


\section{Die Funktionen}

    Das sSMTP-Paket besteht aus folgenden Komponenten:

    \begin{itemize}
        \item sSMTP - Programm zum Versenden von E-Mail\\
            (\url{http://ftp.de.debian.org/debian/pool/main/s/ssmtp/})
        \end{itemize}


\section{Die Voraussetzungen}

    Auf dem System, auf dem sSMTP installiert werden soll, kann kein anderes
    Mailsystem, wie z.B. mail, vmail oder msmtp, installiert sein. Allerdings
    ben"otigt sSMTP ein Mailsystem auf einem anderen Rechner, an welches es
    seine Nachrichten weiterreichen kann.


\section{Die Installation}

    Das sSMTP-Paket wird "uber das Setup-Men"u installiert. Wird eine
    "altere Paketversion vorgefunden, so wird diese deinstalliert bevor
    die neuen Programmdateien installiert werden. Nach dem Installieren
    der Programmdateien wird direkt der Konfigurations-Editor gestartet
    um die Konfiguration anzupassen. Nach Beendigung dieses Schrittes
    werden die Konfigurationsdateien generiert und alle ben"otigten
    Programme gestartet.


\section{Das Men"u im Setup-Programm}

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:

    \begin{itemize}
        \item sSMTP sendmail emulation
            \begin{itemize}
                \item View documentation: Anzeigen der Dokumentation
                \item Edit configuration: Bearbeiten der Konfiguration
                \item Advanced configuration file handling: Konfigurationen verwalten
                \item Send test email: Eine Testnachricht versenden
                \item View log file: Die Logmeldungen anzeigen
            \end{itemize}
        \item Return: Untermen"u verlassen
    \end{itemize}

    Die Men"upunkte d"urften selbsterkl"arend sein, da sie keinerlei weitere
    Eingaben erwarten. Aus diesem Grund wird auf deren Funktion nicht weiter
    eingegangen.


\section{Die "Anderung der Konfiguration}

    Die Konfiguration kann "uber den Men"upunkt `Edit configuration'
    ge"andert werden. Standardm"a"sig wird der Editor aufgerufen, der in der
    Environment-Konfiguration "uber die Variable `EDITOR' festgelegt wurde.
    Nachdem der Editor beendet wurde wird abgefragt, ob die Konfiguration
    aktiviert werden soll. Wird dies best"atigt, werden "uber ein Skript die
    Anpassungen umgehend wirksam gemacht.


\section{Die Konfigurationsdatei}

    In der Konfigurationsdatei, die "uber das Men"u zug"anglich ist, sind
    folgende Parameter vorhanden; wer sie von Hand editieren will findet
    sie unter \texttt{/etc/config.d/ssmtp}.


\section{Die Parameter}

\begin{description}
    \config{START\_SSMTP}{START\_SSMTP}{STARTSSMTP}
        Wird der Wert dieses Parameters auf 'yes' gesetzt, so wird das
        Paket aktiviert; der Wert 'no' deaktiviert es.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{START\_SSMTP='no'}

    \config{SSMTP\_FORWARD\_TO}{SSMTP\_FORWARD\_TO}{SSMTPFORWARDTO}
        Alle Nachrichten an Anwender deren UID $<$ 1000 ist, werden
        standardm"a"sig an diese E-Mail-Adresse geschickt.
%       JED / 23.01.2013 - Es wird kein leerer Parameter zugelassen um
%                          eine stabile Konfiguration zu gewaehrleisten
%       Wird hier keine Adresse eingetragen, so wird die Funktion zum
%       Umschreiben von Adressen deaktiviert.

        G"ultige Werte: E-Mail-Adresse

        Standardeinstellung: \texttt{SSMTP\_FORWARD\_TO='root@local.lan'}

    \config{SSMTP\_MAILHUB}{SSMTP\_MAILHUB}{SSMTPMAILHUB}
        "Uber diesen Mailserver werden die ausgehenden Nachrichten
        standardm"a"sig verschickt.

        G"ultige Werte: Hostname (als FQDN)

        Standardeinstellung: \texttt{SSMTP\_MAILHUB='mail.local.lan'}

    \config{SSMTP\_MAILHUB\_PORT}{SSMTP\_MAILHUB\_PORT}{SSMTPMAILHUBPORT}
        Optional: "Uber diesen Parameter kann der TCP-Port festgelegt werden,
        "uber welchen die Verbindung zum Mailhub aufgebaut werden soll.
        Wird kein Wert angegeben, so wird der SMTP-Standardport 25/tcp verwendet.

        G"ultige Werte: g"ultige Portnummer oder leer

        Standardeinstellung: \texttt{SSMTP\_MAILHUB\_PORT=$''$}

    \config{SSMTP\_HOSTNAME}{SSMTP\_HOSTNAME}{SSMTPHOSTNAME}
        Optional: "Uber diesen Parameter kann ein beliebiger Hostname festgelegt
        werden, welcher von sSMTP im SMTP-HELO-Dialog "ubermitteln soll. Au"serdem
        wird daraus die Absenderadresse f"ur ausgehende Nachrichten hergeleitet
        (username@SSMTP\_HOSTNAME).\\
        Wird kein Hostname angegeben, wird der in /etc/config.d/base konfigurierte
        Name verwendet.

        G"ultige Werte: Hostname (als FQDN) oder leer

        Standardeinstellung: \texttt{SSMTP\_HOSTNAME=$''$}

    \config{SSMTP\_SENDER\_DOMAIN}{SSMTP\_SENDER\_DOMAIN}{SSMTPSENDERDOMAIN}
        Optional: "Uber diesen Parameter kann der Domainname f"ur ausgehende
        Nachrichten festgelegt werden. Wird dieser Parameter nicht gesetzt,
        so wird der Domainname vom SMTP-Hostnamen hergeleitet.

        G"ultige Werte: Domainname oder leer

        Standardeinstellung: \texttt{SSMTP\_SENDER\_DOMAIN=$''$}

    \config{SSMTP\_USE\_AUTH}{SSMTP\_USE\_AUTH}{SSMTPUSEAUTH}
        Erfordert der "uber den Parameter \jump{SSMTPMAILHUB}{SSMTP\_MAILHUB}
        konfigurierte Mailserver eine Authentifizierung, so muss dieser
        Parameter auf den Wert 'yes' gesetzt werden.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{SSMTP\_USE\_AUTH='no'}

    \config{SSMTP\_AUTH\_USER}{SSMTP\_AUTH\_USER}{SSMTPAUTHUSER}
        "Uber diesen Parameter wird der Benutzername festgelegt, welcher
        von sSMTP verwendet werden soll um sich gegen"uber dem Mailserver
        zu authentifizieren.

        G"ultige Werte: Benutzername

        Beispiel: \texttt{SSMTP\_AUTH\_USER='user'}

    \config{SSMTP\_AUTH\_PASS}{SSMTP\_AUTH\_PASS}{SSMTPAUTHPASS}
        "Uber diesen Parameter wird das Kennwort festgelegt, welcher von
        sSMTP verwendet werden soll um sich gegen"uber dem Mailserver zu
        authentifizieren.

        G"ultige Werte: Kennwort

        Beispiel: \texttt{SSMTP\_AUTH\_PASS='pass'}

    \config{SSMTP\_AUTH\_METHOD}{SSMTP\_AUTH\_METHOD}{SSMTPAUTHMETHOD}
        "Uber diesen Parameter wird die Authentifizierungsmethode festgelegt,
        welche sSMTP f"ur die Authentifizierung gegen"uber dem Mailserver
        verwenden soll.

        G"ultige Werte: plain, cram-md5

        Standardeinstellung: \texttt{SSMTP\_AUTH\_METHOD='cram-md5'}

    \config{SSMTP\_USE\_TLS}{SSMTP\_USE\_TLS}{SSMTPUSETLS}
        "Uber diesen Parameter wird festgelegt, ob und wie sSMTP
        versucht eine verschl"usselte Verbindung zum Mailserver aufzubauen.\\
        Hierbei f"uhrt der Wert 'starttls' dazu, dass sSMTP zun"achst eine
        unverschl"usselte Verbindung "uber den smtp-Port 25/tcp aufbaut und
        dann mit Hilfe des STARTTLS-Befehls in den verschl"usselten Modus
        wechselt.\\
        Der Wert 'tls' veranlasst sSMTP direkt eine verschl"usselte Verbindung
        "uber den smtps-Port 465/tcp aufzubauen, sodass dieser gegebenenfalls
        "uber den Parameter \jump{SSMTPMAILHUBPORT}{SSMTP\_MAILHUB\_PORT}
        eingestellt werden muss.\\
        Der Wert 'no' f"uhrt dazu, dass eine unverschl"usselte Verbindung
        aufgebaut wird.

        G"ultige Werte: no, starttls, tls

        Standardeinstellung: \texttt{SSMTP\_USE\_TLS='no'}

    \config{SSMTP\_USE\_TLS\_CERT}{SSMTP\_USE\_TLS\_CERT}{SSMTPUSETLSCERT}
        Wird der Wert dieses Parameters auf 'yes' gesetzt, so wird
        versucht sich mittels eines SSL-/TLS-Zertifikates beim Mailserver
        zu authentifizieren. Der Wert auf 'no' deaktiviert diese Funktion.

        G"ultige Werte: yes, no

        Standardeinstellung: \texttt{SSMTP\_USE\_TLS\_CERT='no'}

    \config{SSMTP\_OUTGOING\_N}{SSMTP\_OUTGOING\_N}{SSMTPOUTGOINGN}
        "Uber diesen Parameter wird festgelegt, wie viele Aliasdefinitionen
        f"ur ausgehende Nachrichten konfiguriert werden sollen.

        G"ultige Werte: Zahl

        Standardeinstellung: \texttt{SSMTP\_OUTGOING\_N='0'}

    \config{SSMTP\_OUTGOING\_x\_USER}{SSMTP\_OUTGOING\_x\_USER}{SSMTPOUTGOINGxUSER}
        "Uber diesen Parameter wird der Name eines Systemanwenders
        festgelegt, f"ur den eine E-Mail-Aliasadresse konfiguriert werden
        soll.

        G"ultige Werte: existierender Systemanwender

        Standardeinstellung: \texttt{SSMTP\_OUTGOING\_1\_USER='root'}

    \config{SSMTP\_OUTGOING\_x\_EMAIL}{SSMTP\_OUTGOING\_x\_EMAIL}{SSMTPOUTGOINGxEMAIL}
        "Uber diesen Parameter wird die E-Mail-Adresse festgelegt, die
        beim Versand von Nachrichten des "uber den Parameter
        \jump{SSMTPOUTGOINGxUSER}{SSMTP\_OUTGOING\_x\_USER} definierten
        Anwenders, verwendet werden soll.

        G"ultige Werte: g"ultige E-Mail-Adresse

        Standardeinstellung: \texttt{SSMTP\_OUTGOING\_1\_EMAIL='me@local.lan'}

    \config{SSMTP\_OUTGOING\_x\_MAILHUB}{SSMTP\_OUTGOING\_x\_MAILHUB}{SSMTPOUTGOINGxMAILHUB}
        Optional: "Uber diesen Parameter kann ein Mailserver festgelegt
        werden "uber den ausgehende Nachrichten des des "uber den Parameter
        \jump{SSMTPOUTGOINGxUSER}{SSMTP\_OUTGOING\_x\_USER} definierten
        Anwenders, geleitet werden sollen.

        G"ultige Werte: Hostname (als FQDN)

        Standardeinstellung: \texttt{SSMTP\_OUTGOING\_1\_MAILHUB=$''$}

    \config{SSMTP\_OUTGOING\_x\_MAILHUB\_PORT}{SSMTP\_OUTGOING\_x\_MAILHUB\_PORT}{SSMTPOUTGOINGxMAILHUBPORT}
        Optional: "Uber diesen Parameter kann der Port festgelegt werden,
        "uber welchen die Verbindung zum Mailserver aufgebaut werden soll.
        Wird kein Wert angegeben, so wird der SMTP-Standardport 25/tcp
        verwendet.

        G"ultige Werte: g"ultige Portnummer oder leer

        Standardeinstellung: \texttt{SSMTP\_OUTGOING\_1\_MAILHUB\_PORT=$''$}
\end{description}
