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

\chapter{Das Mail2Print-Paket}

\section{Die Einleitung}

    Dieses Paket ist als Zusatzpaket zum Mail- und LPRng-Paket zu verstehen.
    Per E-Mail an den E-Mail-Server gesandte Nachrichten, inklusiv eventuell
    vorhandener Dateianh"ange, k"onnen auf einem definierten Drucker ausgegeben
    werden. Zur Zeit werden Dateianh"ange in den Formaten in den Formaten gif,
    htm/html, jpg/jpeg, pdf, png, ps, tif/tiff und txt unterst"utzt.



\section{Die Funktionen}

    Das Mail2Print-Paket besteht aus folgenden Komponenten:

    \begin{itemize}
        \item unifont.ttf - GNU unicode font.\\
            (\url{http://czyborra.com/unifont/})
    \end{itemize}

\section{Die Voraussetzungen}

    Dieses Paket ben"otigt zur korrekten Funktion zwingende die
    installierten Pakete 'Mail', 'Ghostscript', 'LPRng` und 'RipMIME'.


\section{Die Installation}

    Das Mail2Print-Paket wird "uber das Setup-Men"u installiert. Nach dem
    Installieren der Programmdateien wird direkt der Konfigurations-Editor
    gestartet um die Konfiguration anzupassen. Nach Beendigung diese
    Schrittes werden die Konfigurationsdateien generiert.


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

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

    \begin{itemize}
        \item Mail2Print configuration
        \begin{itemize}
            \item View documentation: Anzeigen der Dokumentation
            \item Edit configuration: Bearbeiten der Konfiguration
            \item Advanced configuration file handling: Konfigurationen verwalten
            \item View log file: Anzeigen der Logdatei
            \item Exit: Untermen"u verlassen
        \end{itemize}
    \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/mail2print}.


\section{Die Parameter}

\begin{description}
    \config{START\_MAIL2PRINT}{START\_MAIL2PRINT}{STARTMAIL2PRINT}
        Zur Aktivierung der Konfiguration muss dieser Parameter
        lediglich auf den Wert 'yes' gestellt werden. Die Einstellung
        'no' deaktiviert die Konfiguration.

        G"ultige Werte: yes, no

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

    \config{MAIL2PRINT\_N}{MAIL2PRINT\_N}{MAIL2PRINTN}
        "Uber diesen Parameter wird die Anzahl der Mail2Print-Konfigurationen
        festgelegt welche eingerichtet werden sollen.

        G"ultige Werte: Zahl

        Standardeinstellung: \texttt{MAIL2PRINT\_N='1'}

    \config{MAIL2PRINT\_x\_ACTIVE}{MAIL2PRINT\_x\_ACTIVE}{MAIL2PRINTxACTIVE}
        Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
        zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{MAIL2PRINT\_1\_ACTIVE='no'}

    \config{MAIL2PRINT\_x\_PRN\_QUEUE}{MAIL2PRINT\_x\_PRN\_QUEUE}{MAIL2PRINTxPRNQUEUE}
        "Uber diesen Parameter wird der Name der Druckerwarteschlange
        festgelegt an welche Druckauftr"age gesendet werden sollen.
        Druckerwarteschlangen hei"sen "ublicherweise `pr1', `repr1',
        `usbpr1' etc..

        G"ultige Werte: Name einer Druckerwarteschlange

        Beispiel: \texttt{MAIL2PRINT\_1\_PRN\_QUEUE='repr1'}

    \config{MAIL2PRINT\_x\_PRN\_COMMENT}{MAIL2PRINT\_x\_PRN\_COMMENT}{MAIL2PRINTxPRNCOMMENT}
        "Uber diesen Parameter kann auf Wunsch ein beschreibender Text
        eingegeben werden, welcher einem Anwender u.a. bei der Abfrage
        der verf"ugbaren Druckerwarteschlangen angezeigt wird.

        G"ultige Werte: Text

        Beispiel: \texttt{MAIL2PRINT\_1\_PRN\_COMMENT='my print queue'}

    \config{MAIL2PRINT\_x\_PRN\_COPY}{MAIL2PRINT\_x\_PRN\_COPY}{MAIL2PRINTxPRNCOPY}
        "Uber diesen Parameter wird festgelegt wie viele Kopien eines
        Druckauftrages erstellt werden sollen.

        G"ultige Werte: Zahl

        Standardeinstellung: \texttt{MAIL2PRINT\_1\_PRN\_COPY='1'}

    \config{MAIL2PRINT\_x\_PRN\_GS}{MAIL2PRINT\_x\_PRN\_GS}{MAIL2PRINTxPRNGS}
        "Uber diesen Parameter wird festgelegt, ob sich der an die
        Druckerwarteschlange angeschlossene Drucker mittels Ghostscript
        ansprechend l"asst. Falls nicht, wird davon ausgegangen,
        dass der Drucker die Postscript-Sprache versteht.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{MAIL2PRINT\_x\_PRN\_GS='no'}

    \config{MAIL2PRINT\_x\_PRN\_GS\_DRIVER}{MAIL2PRINT\_x\_PRN\_GS\_DRIVER}{MAIL2PRINTxPRNGSDRIVER}
        Falls der Parameter \jump{MAIL2PRINTxPRNGS}{MAIL2PRINT\_x\_PRN\_GS}
        auf `yes' gesetzt wurde, legt man "uber diesen Parameter den Namen
        des Ghostscript-Druckertreibers fest, welcher f"ur den Ausdruck
        verwendet werden soll. Siehe Absatz `Ghostscript Druckertreiber'
        f"ur weitere Details.

        G"ultige Werte: g"ultiger Ghostscript Druckertreiber

        Beispiel: \texttt{MAIL2PRINT\_1\_PRN\_GS\_DRIVER='ljet4'}

    \config{MAIL2PRINT\_x\_PRN\_LIMIT}{MAIL2PRINT\_x\_PRN\_LIMIT}{MAIL2PRINTxPRNLIMIT}
        Optionaler Parameter: "Uber diesen Parameter kann festgelegt werden,
        ab welcher Dateigr"o"se ein Ausdruck erfolgen soll. Die Gr"o"se
        einer Datei wird erst nach Entfernen aller Leerzeilen und Leerzeichen
        ermittelt, um einen verl"asslichen Wert zu erhalten. Wird dieses Limit
        unterschritten, so erfolgt kein Ausdruck. Der Standardwert ist '5'.

        G"ultige Werte: Zahl

        Beispiel: \texttt{MAIL2PRINT\_1\_PRN\_LIMIT='5'}

    \config{MAIL2PRINT\_x\_PRN\_PAPER}{MAIL2PRINT\_x\_PRN\_PAPER}{MAIL2PRINTxPRNPAPER}
        Optionaler Parameter: "Uber diesen Parameter kann festgelegt werden,
        welche Seitengr"o"se bei der Druckausgabe verwendet wird. Der
        Standardwert ist 'a4'.

        G"ultige Werte: g"ultige Ghostscript Seitengr"o"se

        Beispiel: \texttt{MAIL2PRINT\_1\_PRN\_PAPER='a4'}

    \config{MAIL2PRINT\_x\_SEND\_MAIL\_DEFAULT}{MAIL2PRINT\_x\_SEND\_MAIL\_DEFAULT}{MAIL2PRINTxSENDMAILDEFAULT}
        "Uber diesen Parameter wird festgelegt, ob standardm"a"sig nach
        Abschluss eines Druckauftrages eine Statusnachricht an den Absender
        geschickt werden soll. Diese Einstellung gilt prim"ar f"ur Absender
        der lokalen Domain.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{MAIL2PRINT\_1\_SEND\_MAIL\_DEFAULT='no'}

    \config{MAIL2PRINT\_x\_SKIP\_MIME\_DEFAULT\_N}{MAIL2PRINT\_x\_SKIP\_MIME\_DEFAULT\_N}{MAIL2PRINTxSKIPMIMEDEFAULTN}
        "Uber diesen Parameter wird die Anzahl der standardm"a"sig beim
        Ausdruck zu ignorierenden MIME-Typen festgelegt. D.h. Nachrichtenteile
        diesen Typs werden nicht ausgedruckt.

        G"ultige Werte: Zahl

        Standardeinstellung: \texttt{MAIL2PRINT\_1\_SKIP\_MIME\_DEFAULT\_N='0'}

    \config{MAIL2PRINT\_x\_SKIP\_MIME\_DEFAULT\_y\_TYPE}{MAIL2PRINT\_x\_SKIP\_MIME\_DEFAULT\_y\_TYPE}{MAIL2PRINTxSKIPMIMEDEFAULTyTYPE}
        "Uber diesen Parameter wird der Name eines standardm"a"sig beim
        Ausdruck zu ignorierenden MIME-Typs festgelegt.

        G"ultige Werte: G"ultiger MIME-Type

        Standardeinstellung: \texttt{MAIL2PRINT\_1\_SKIP\_MIME\_DEFAULT\_1\_TYPE=$''$}
\end{description}

    Standardm"a"sig akzeptiert der Mail2Print-Prozess nur Druckauftr"age
    von Mitgliedern der lokalen E-Mail-Domain. Sollen Druckauftr"age auch
    von Absendern anderer E-Mail-Domains akzeptiert werden, so sind deren
    E-Mail-Adressen "uber die folgenden Parameter zu konfigurieren.

\begin{description}
    \config{MAIL2PRINT\_x\_ALLOWED\_SENDER\_N}{MAIL2PRINT\_x\_ALLOWED\_SENDER\_N}{MAIL2PRINTxALLOWEDSENDERN}
        "Uber diesen Parameter wird die Anzahl der E-Mail-Adressen
        festgelegt, von welchen zus"atzlich Druckauftr"age akzeptiert
        werden sollen.

        G"ultige Werte: Zahl

        Standardeinstellung: \texttt{MAIL2PRINT\_x\_ALLOWED\_SENDER\_N='1'}

    \config{MAIL2PRINT\_x\_ALLOWED\_SENDER\_y\_ACTIVE}{MAIL2PRINT\_x\_ALLOWED\_SENDER\_y\_ACTIVE}{MAIL2PRINTxALLOWEDSENDERyACTIVE}
        Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
        zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{MAIL2PRINT\_1\_ALLOWED\_SENDER\_1\_ACTIVE='no'}

    \config{MAIL2PRINT\_ALLOWED\_x\_SENDER\_y\_ADDR}{MAIL2PRINT\_x\_ALLOWED\_SENDER\_y\_ADDR}{MAIL2PRINTxALLOWEDSENDERyADDR}
        "Uber diesen Parameter wird eine E-Mail-Adresse festgelegt, von
        welcher zus"atzlich Druckauftr"age akzeptiert werden sollen.
        Standardm"a"sig werden nur Druckauftr"age von Mitgliedern der
        lokalen E-Mail-Domain akzeptiert.

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

        Beispiel: \texttt{MAIL2PRINT\_1\_ALLOWED\_SENDER\_1\_ADDR='frank@other.dom'}

    \config{MAIL2PRINT\_ALLOWED\_x\_SENDER\_y\_SEND\_MAIL}{MAIL2PRINT\_x\_ALLOWED\_SENDER\_y\_SEND\_MAIL}{MAIL2PRINTxALLOWEDSENDERySENDMAIL}
        "Uber diesen Parameter wird festgelegt, ob standardm"a"sig nach
        Abschluss eines Druckauftrages eine Statusnachricht an den Absender
        geschickt werden soll.

        G"ultige Werte: yes oder no

        Standardeinstellung: \texttt{MAIL2PRINT\_1\_ALLOWED\_SENDER\_1\_SEND\_MAIL='no'}

    \config{MAIL2PRINT\_ALLOWED\_x\_SENDER\_y\_SKIP\_MIME\_N}{MAIL2PRINT\_ALLOWED\_x\_SENDER\_y\_SKIP\_MIME\_N}{MAIL2PRINTALLOWEDxSENDERySKIPMIMEN}
        "Uber diesen Parameter wird die Anzahl der beim Ausdruck zu
        ignorierenden MIME-Typen festgelegt. D.h. Nachrichtenteile
        diesen Typs werden nicht ausgedruckt, wenn eine Nachricht von
        dem "uber den Parameter \jump{MAIL2PRINTALLOWEDxSENDERyADDR}{MAIL2PRINT\_ALLOWED\_x\_SENDER\_y\_ADDR}
        konfigurierten Absender empfangen wird.

        G"ultige Werte: Zahl

        Standardeinstellung: \texttt{MAIL2PRINT\_ALLOWED\_1\_SENDER\_1\_SKIP\_MIME\_N='0'}

    \config{MAIL2PRINT\_ALLOWED\_x\_SENDER\_y\_SKIP\_MIME\_z\_TYPE}{MAIL2PRINT\_ALLOWED\_x\_SENDER\_y\_SKIP\_MIME\_z\_TYPE}{MAIL2PRINTALLOWEDxSENDERySKIPMIMEzTYPE}
        "Uber diesen Parameter wird der Name eines beim Ausdruck zu
        ignorierenden MIME-Typs festgelegt, wenn eine Nachricht von
        dem "uber den Parameter \jump{MAIL2PRINTALLOWEDxSENDERyADDR}{MAIL2PRINT\_ALLOWED\_x\_SENDER\_y\_ADDR}
        konfigurierten Absender empfangen wird.

        G"ultige Werte: G"ultiger MIME-Type

        Standardeinstellung: \texttt{MAIL2PRINT\_ALLOWED\_1\_SENDER\_1\_SKIP\_MIME\_1\_TYPE=$''$}
\end{description}

\subsection{Die Logdatei}

        Das Mail2Print-Paket verwendet eine Logdatei, um Meldungen "uber
        den laufenden Betrieb zu speichern. Um zu verhindern, dass diese
        Dateien zu gro"s und un"ubersichtlich werden, kann man einstellen
        wie das System mit den Dateien umgehen soll.

\begin{description}
    \config{MAIL2PRINT\_LOG\_COUNT}{MAIL2PRINT\_LOG\_COUNT}{MAIL2PRINTLOGCOUNT}
        "Uber diesen Parameter wird eingestellt, wie viele Logdateien
        vorgehalten werden sollen. Wird dieser Wert "uberschritten, so
        wird die "alteste Logdatei gel"oscht.

        G"ultige Werte: Zahl

        Standardeinstellung: \texttt{MAIL2PRINT\_LOG\_COUNT='10'}

    \config{MAIL2PRINT\_LOG\_INTERVAL}{MAIL2PRINT\_LOG\_INTERVAL}{MAIL2PRINTLOGINTERVAL}
        Dieser Parameter bestimmt in welchen Intervallen die Logdateien
        archiviert werden sollen. Zur Auswahl stehen die Schl"usselw"orter
        `daily' - t"aglich, `weekly' - w"ochentlich und `monthly - monatlich.

        G"ultige Werte: daily, weekly, monthly

        Standardeinstellung: \texttt{MAIL2PRINT\_LOG\_INTERVAL='weekly'}
\end{description}


\section{Verschiedenes}

\subsection{Der Aufbau der E-Mail-Adresse}

    Will man Dateien "uber den Mail2Print-Service ausdrucken lassen, so
    muss die Empf"angeradresse entsprechend folgender Syntax verwendet
    werden:

    \begin{verbatim}
    print/<name-einer-druckerwarteschlange>@<domain-name>
    \end{verbatim}

    Lautet der Name der Druckerwarteschlange beispielsweise 'repr1' und
    die lokale E-Mail-Domain 'home.lan', so muss die E-Mail-Adresse wie
    folgt lauten:

    \begin{verbatim}
    print/repr1@home.lan
    \end{verbatim}

    \achtung{Gibt man den Druckerwarteschlangenname 'm2pinfo' an, so wird
    eine Informationsnachricht an den Absender geschickt, welche Auskunft
    "uber die verf"ugbaren Druckerwarteschlangen und die unterst"utzten
    Dateiformate gibt.}

\subsection{Die Ghostscript Druckertreiber}

    Durch Aufruf des Befehls `gs --help' kann man sich die Liste der
    verf"ugbaren Ghostscript Druckertreiber anzeigen lassen. Zum
    Zeitpunkt der Erstellung dieses Paketes wurde folgende Treiber
    vom Programm unterst"utzt:

    GPL Ghostscript 9.14 (2014-03-26)

    alc1900 alc2000 alc4000 alc4100 alc8500 alc8600 alc9100 ap3250 appledmp
    atx23 atx24 atx38 bbox bit bitcmyk bitrgb bitrgbtags bj10e bj10v bj10vh
    bj200 bjc600 bjc800 bjc880j bjccmyk bjccolor bjcgray bjcmono bmp16 bmp16m
    bmp256 bmp32b bmpgray bmpmono bmpsep1 bmpsep8 ccr cdeskjet cdj1600 cdj500
    cdj550 cdj670 cdj850 cdj880 cdj890 cdj970 cdjcolor cdjmono cdnj500 cfax
    chp2200 cif cljet5 cljet5c cljet5pr coslw2p coslwxl cp50 declj250 deskjet
    devicen dfaxhigh dfaxlow dj505j djet500 djet500c dl2100 dnj650c epl2050
    epl2050p epl2120 epl2500 epl2750 epl5800 epl5900 epl6100 epl6200 eplcolor
    eplmono eps2write eps9high eps9mid epson epsonc epswrite escp escpage
    faxg3 faxg32d faxg4 fmlbp fmpr fpng fs600 gdi hl1240 hl1250 hl7x0
    hpdj1120c hpdj310 hpdj320 hpdj340 hpdj400 hpdj500 hpdj500c hpdj510
    hpdj520 hpdj540 hpdj550c hpdj560c hpdj600 hpdj660c hpdj670c hpdj680c
    hpdj690c hpdj850c hpdj855c hpdj870c hpdj890c hpdjplus hpdjportable ibmpro
    ijs imagen inferno ink\_cov inkcov iwhi iwlo iwlq jetp3852 jj100 jpeg
    jpegcmyk jpeggray la50 la70 la75 la75plus laserjet lbp310 lbp320 lbp8
    lex2050 lex3200 lex5700 lex7000 lips2p lips3 lips4 lips4v lj250 lj3100sw
    lj4dith lj4dithp lj5gray lj5mono ljet2p ljet3 ljet3d ljet4 ljet4d
    ljet4pjl ljetplus ln03 lp1800 lp1900 lp2000 lp2200 lp2400 lp2500 lp2563
    lp3000c lp7500 lp7700 lp7900 lp8000 lp8000c lp8100 lp8200c lp8300c
    lp8300f lp8400f lp8500c lp8600 lp8600f lp8700 lp8800c lp8900 lp9000b
    lp9000c lp9100 lp9200b lp9200c lp9300 lp9400 lp9500c lp9600 lp9600s
    lp9800c lps4500 lps6500 lq850 lxm3200 lxm5700m m8510 mag16 mag256
    md1xMono md2k md50Eco md50Mono md5k mgr4 mgr8 mgrgray2 mgrgray4 mgrgray8
    mgrmono miff24 mj500c mj6000c mj700v2c mj8000c ml600 necp6 npdl nullpage
    oce9050 oki182 oki4w okiibm oprp opvp paintjet pam pamcmyk32 pamcmyk4 pbm
    pbmraw pcl3 pcx16 pcx24b pcx256 pcx2up pcxcmyk pcxgray pcxmono pdfwrite
    pgm pgmraw pgnm pgnmraw photoex picty180 pj pjetxl pjxl pjxl300 pkm
    pkmraw pksm pksmraw plan plan9bm planc plang plank planm png16 png16m
    png256 png48 pngalpha pnggray pngmono pnm pnmraw ppm ppmraw pr1000
    pr1000\_4 pr150 pr201 ps2write psdcmyk psdcmykog psdrgb pxlcolor pxlmono
    r4081 rinkj rpdl samsunggdi sgirgb sj48 spotcmyk st800 stcolor sunhmono
    t4693d2 t4693d4 t4693d8 tek4696 tiff12nc tiff24nc tiff32nc tiff48nc
    tiff64nc tiffcrle tiffg3 tiffg32d tiffg4 tiffgray tifflzw tiffpack
    tiffscaled tiffsep tiffsep1 txtwrite uniprint xcf xes xpswrite

\subsection{Die Ghostscript Seitengr"o"sen}

    Ghostscript unterst"utzt standardm"a"sig folgende Seitengr"o"sen bei
    der Druckausgabe:

    GPL Ghostscript 9.14 (2014-03-26)

    a0, a1, a2, a3, a4, a4small, a5, a6, a7, a8, a9, a10, isob0, isob1,
    isob2, isob3, isob4, isob5, c0 , c1, c2, c3, c4, c5, c6, 11x17, ledger,
    legal, letter, lettersmall, archE, archD, archC, archB, archA

\subsection{Die MIME-Type Besonderheiten}

\begin{description}
    \config{multipart/alternative}{multipart/alternative}{multipart/alternative}
        Enth"alt eine Nachricht einen solchen MIME-Type, so bedeutet dies dass
        eine Nachricht gleiche oder "ahnliche Inhalte in unterschiedlicher
        Qualit"atsauspr"agung enth"alt. Dabei steigt die Qualit"at des Inhalts,
        je weiter man sich in einer Nachricht nach hinten bewegt.\\
        Da es bis dato keine M"oglichkeit gibt einzig den Inhalt mit der besten
        Qualit"at zu identifizieren, kann es passieren das jeder dieser Teile
        ausgedruckt wird. Hierdurch kann der Eindruck entstehen, dass gleicher
        oder "ahnlicher Inhalt mehrfach ausgegeben wird.
\end{description}


