<?xml version="1.0" encoding="ISO-8859-1"?>
<chapter id="receiving-email">
  <title>eMails empfangen</title>

  <sect1 id="receiving-email-pop3">
    <title>Via POP3-Konten - der einfache Weg (PostMasterPOP3.pl)</title>

    <para>OTRS ist in der Lage, eMails von POP3-Konten zu empfangen.</para>

    <para>Konfigurieren Sie Ihre POP3-Konten über das Admin-Interface (POP3
    Account).<screenshot><screeninfo>eMail-Adresse hinzufügen</screeninfo><graphic
    fileref="screenshots/admin-add-pop3-account.png" scale="40"
    srccredit="add POP3 account - screenshot"></graphic></screenshot></para>

    <para>Starten Sie &#34;bin/PostMasterPOP3.pl&#34; und alle eMails werden
    in Ihr OTRS geholt.</para>

    <para>Ausserdem gibt es einen Beispiel-Cronjob
    (var/cron/postmaster_pop3.dist), der &#34;bin/PostMasterPOP3.pl&#34; alle
    10 Minuten ausführt (s. auch Kapitel Cronjobs).</para>
  </sect1>

  <sect1 id="receiving-email-cmd">
    <title>Via Kommandozeilen-Programm und z.B. procmail (PostMaster.pl)</title>

    <para>OTRS ist in der Lage, eMails über ein Kommandozeilen-Programm
    (bin/PostMaster.pl) zu empfangen.</para>

    <para>Das bedeutet, dass eMails im OTRS angezeigt werden, wenn der MDA
    (mail delivery agent, z.B. procmail) die eMails nach
    &#34;bin/PostMaster.pl&#34; durchleitet.</para>

    <para>Um &#34;bin/PostMaster.pl&#34; auf der Kommandozeile (ohne MDA) zu
    testen, benutzen Sie folgendes:</para>

    <para><programlisting>
shell:~ # cat /opt/otrs/doc/test-email-1.box | /opt/otrs/bin/PostMaster.pl
shell:~ #
</programlisting>Wenn die eMail in der Queue-Ansicht angezeigt wird, sind Ihre
    Einstellungen in Ordnung.</para>

    <para>Procmail ist ein sehr bekannter eMail-Filter in der Linux-Umgebung.
    Es wird wahrscheinlich auf Ihrem System installiert sein. Falls nicht,
    schauen Sie auf der <ulink url="http://www.procmail.org/"><citetitle>procmail
    Homepage</citetitle></ulink>.</para>

    <para>Um procmail zu konfigurieren (benötigt einen für procmail
    konfigurierten MDA (z.B. sendmail, postfix, exim oder qmail)), benutzen
    Sie &#34;~otrs/.procmailrc&#34; und ändern Sie das folgende:</para>

    <para><programlisting>
SYS_HOME=$HOME
PATH=/bin:/usr/bin:/usr/local/bin
# --
# Pipe all email into the PostMaster process.
# --
:0 :
| $SYS_HOME/bin/PostMaster.pl
</programlisting>Alle an den lokalen OTRS Benutzer gesendeten eMails werden an
    &#34;bin/PostMaster.pl&#34; durchgeleitet und dann in der Queue-Ansicht
    angezeigt.</para>

    <sect2>
      <title>eMails via POP3 oder IMAP und fetchmail für PostMaster.pl
      empfangen</title>

      <para>Um eMails von Ihrem Mailserver via POP3 oder IMAP für den
      OTRS-Rechner/lokalen OTRS-Benutzer und procmail abzuholen, benutzen Sie
      <ulink url="http://www.tuxedo.org/~esr/fetchmail/">fetchmail</ulink>.
      Hinweis: Voraussetzung ist eine funktionierende SMTP-Konfiguration auf
      dem OTRS-Rechner.<example><title>.fetchmailrc</title><programlisting>
#poll (mailserver) protocol POP3 user (user) password (password) is (localuser)
poll mail.example.com protocol POP3 user joe password mama is otrs
</programlisting></example></para>

      <para>Vergessen Sie nicht, .fetchmailrc auf 710 zu setzen (&#34;chmod
      710 .fetchmailrc&#34;)!</para>

      <para>Wenn &#34;fetchmail -a&#34; ausgeführt wird (ggf. via cron),
      werden alle eMails auf das lokale OTRS-Konto weitergeleitet.</para>
    </sect2>
  </sect1>

  <sect1 id="receiving-email-filter-web">
    <title>Filterung/Verteilung über OTRS/Webinterface</title>

    <para>OTRS ist in der Lage, ankommende eMails je nach &#34;To&#34; und
    &#34;Cc&#34; Adresse zu verteilen. Einstellbar über das Admin-Interface.</para>

    <para><emphasis role="bold">Beispiel</emphasis></para>

    <para>Fügen Sie eine neue System-eMail-Adresse hinzu (Admin-Bereich
    --&#62;&#62; System-eMail-Adressen). <screenshot><screeninfo>eMail-Adresse
    hinzufügen</screeninfo><graphic fileref="screenshots/admin-add-email.png"
    scale="40" srccredit="add email address - screenshot"></graphic></screenshot></para>

    <para>In diesem Fall werden alle ankommenden eMails (mit To: oder Cc:
    support@firma.de) in die Queue `Raw' einsortiert.</para>
  </sect1>

  <sect1 id="receiving-email-filter-module">
    <title>Filterung/Verteilung über OTRS/PostMaster Module (für komplexere
    Verteilungsszenarien)</title>

    <para>Falls Sie die &#34;PostMaster.pl&#34; oder
    &#34;PostMasterPOP3.pl&#34; Methoden benutzen, können Sie die
    X-OTRS-Header mit den OTRS/PostMaster-Filtermodulen modifizieren.</para>

    <para>Zum Beispiel können Sie die Priorität oder die Queue eines Tickets
    mit den PostMaster-Filtermodulen einstellen.</para>

    <para>Es gibt verschiedene Standard-Filtermodule.</para>

    <para>Hinweis: Der Jobname (z.B.
    $Self-&#62;{&#39;PostMaster::PreFilterModule&#39;}-&#62;{&#39;Jobname&#39;})
    muss eindeutig sein!</para>

    <para>Kernel::System::PostMaster::Filter::Match ist ein Standard-Modul, um
    einige eMail-Header (z.B. From, To, Subject, ...) zu prüfen und dann den
    neuen eMail-Header zu setzen (z.B. X-OTRS-Ignore: yes oder X-OTRS-Queue:
    spam).</para>

    <para><screen>
Kernel/Config.pm
[...]
    # Job Name: 1-Match 
    # (block/ignore all spam email with From: noreply@)
    $Self-&#62;{&#39;PostMaster::PreFilterModule&#39;}-&#62;{&#39;1-Match&#39;} = {
        Module =&#62; &#39;Kernel::System::PostMaster::Filter::Match&#39;,
        Match =&#62; {
            From =&#62; &#39;noreply@&#39;,
        },
        Set =&#62; {
            &#39;X-OTRS-Ignore&#39; =&#62; &#39;yes&#39;,
        },
    };
    # Job Name: 2-Match
    # (sort emails with From: sales@example.com and Subject: **ORDER**
    # into queue &#39;Order&#39;)
    $Self-&#62;{&#39;PostMaster::PreFilterModule&#39;}-&#62;{&#39;2-Match&#39;} = {
        Module =&#62; &#39;Kernel::System::PostMaster::Filter::Match&#39;,
        Match =&#62; {
            To =&#62; &#39;sales@example.com&#39;,
            Subject =&#62; &#39;**ORDER**&#39;,
        },
        Set =&#62; {
            &#39;X-OTRS-Queue&#39; =&#62; &#39;Order&#39;,
        },
    };
[...]
</screen></para>

    <para>Kernel::System::PostMaster::Filter::CMD ist ein Standard-Modul, um
    die eMails an ein externes Kommando zu leiten und falls das Ergebnis aus
    STDOUT true ist, den neuen eMail-Header zu setzen (z.B. X-OTRS-Ignore: yes
    oder X-OTRS-Queue: spam).</para>

    <para><screen>
Kernel/Config.pm
[...]
    # Job Name: 5-SpamAssassin 
    # (SpamAssassin example setup, ignore spam emails)
    $Self-&#62;{&#39;PostMaster::PreFilterModule&#39;}-&#62;{&#39;5-SpamAssassin&#39;} = {
        Module =&#62; &#39;Kernel::System::PostMaster::Filter::CMD&#39;,
        CMD =&#62; &#39;/usr/bin/spamassassin | grep -i &#34;X-Spam-Status: yes&#34;&#39;,
        Set =&#62; {
            &#39;X-OTRS-Ignore&#39; =&#62; &#39;yes&#39;,
        },
    };
[...]
</screen></para>

    <para>Natürlich ist es auch möglich, eigene PostMaster-Filtermodule zu
    entwicklen.</para>

    <para>Ausserdem gibt es eine Liste aller möglichen X-OTRS-Header in
    doc/X-OTRS-Headers.txt.</para>
  </sect1>

  <sect1 id="receiving-email-procmail">
    <title>Filterung/Verteilung durch Procmail (für komplexere
    Verteilungsszenarien)</title>

    <para>Falls Sie die PostMaster.pl Methode benutzen, können Sie
    X-OTRS-Header zur eMail hinzufügen und PostMaster.pl wird diesen Header
    dazu benutzen, die eMail an PostMaster.pl zu leiten. TODO: ergibt für mich
    keinen Sinn (postmaster.pl piped die Mail an sich selbst???)</para>

    <para><emphasis role="bold">Der X-OTRS-Queue Mail-Header</emphasis></para>

    <para>Der X-OTRS-Queue Mail-Header wird durch OTRS geprüft und OTRS wird
    eMails in die entsprechende Queue stellen. Procmail und fromail können
    dazu genutzt werden, ein mächtiges Verteilungs-Werkzeug zu erstellen.</para>

    <para><emphasis role="bold">Beispiele</emphasis></para>

    <para>Die folgenden Beispiele sind von procmailex man-page kopiert. Es ist
    eine gute Idee, sich diese einmal anzuschauen. Natürlich haben wir den
    Text ein wenig geändert (um es an die Queue-Idee anzupassen).</para>

    <para>Alle eMails von der scuba-dive Maillingliste in die scuba Queue
    aussortieren.<screen>
:0 fhw :
* ^TOscuba
| formail -I &#34;X-OTRS-Queue: scuba&#34;
</screen>Alle eMails von Peter über Compiler an die william Queue weiterleiten<screen>
:0 fhw :
* ^From.*peter
* ^Subject:.*compilers
| formail -I &#34;X-OTRS-Queue: william&#34;
</screen>Und hier ein letztes Beispiel, die gesamte .procmailrc.
    <example><title>.procmailrc</title><screen>
# --
# .procmailrc - procmailrc of the OTRS user
# Copyright (C) 2001-2002 Martin Edenhofer (martin+code at otrs.org)
# --
# $Id: receiving_email.sgml,v 1.5 2004/07/29 10:29:11 daniel Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see 
# the enclosed file COPYING for license information (GPL). If you 
# did not receive this file, see http://www.gnu.org/licenses/gpl.txt.
# --

SYS_HOME=$HOME

PATH=/bin:/usr/bin:/usr/local/bin
MONTHFOLDER=`date +%Y-%m`
YEARFOLDER=`date +%Y`
LOGFILE=$SYS_HOME/var/log/procmail-$MONTHFOLDER.log
VERBOSE=on

# --
# Remove all X-OTRS Header (allow this only for trusted email)
# e. g. from *@example.com
# --
:0 fhw :
* !^From.*@example.com
| grep -vi &#39;^X-OTRS-&#39;

# --
# Examples for queue presorting.
# --

:0 fhw :
* ^List-Id:.*OpenAntiVirus
| formail -I &#34;X-OTRS-Queue: OpenAntiVirus&#34;

:0 fhw :
* ^Sender:.*example.com
| formail -I &#34;X-OTRS-Queue: example&#34;

:0 fhw :
* TO:.*BUGTRAQ
| formail -I &#34;X-OTRS-Queue: BUGTRAQ&#34;

# --
# Backup of all incoming emails. 
# It&#39;s always better to have a backup of all incoming emails!
# --
:0 c :
$SYS_HOME/var/INBOX.Backup.$MONTHFOLDER

# --
# Pipe all email into the PostMaster process.
# --
:0 :
| $SYS_HOME/bin/PostMaster.pl

# --
# spool all the rest (which the PostMaster.pl can&#39;t process!) 
# If the database is down or the PostMaster.pl exit was not &#39;0&#39;!
# --
:0 :
$SYS_HOME/var/spool/.

# --
# end of .procmailrc
# --
</screen></example>Bitte schauen Sie in die procmailex man-page für mehr
    Beispiele.</para>

    <para>Ausserdem gibt es eine Liste aller möglichen X-OTRS Header in
    doc/X-OTRS-Headers.txt.</para>
  </sect1>

  <sect1 id="receiving-email-cmd-dispatching-with-pro-web">
    <title>Beispiel für Filterung/Verteilung durch Procmail und ein
    Webformular</title>

    <para>Dies ist ein Beispiel für ein Webformular, dass eine eMail für OTRS
    erzeugt. Sie finden dieses Perl-Skript in
    &#34;$OTRS_HOME/scripts/webform.pl&#34;.</para>

    <para>Sie haben ein Thema, Von, eMail, Betreff und Nachrichten Feld.</para>

    <para>Ändern Sie die Einstellungen für das Webformular:<screen>
# --
# web form options
# -- 
my $Ident = &#39;ahfiw2Fw32r230dddl2foeo3r&#39;;
# sendmail location and options
my $Sendmail = &#39;/usr/sbin/sendmail -t -i -f &#39;;
# email where the emails of the form will send to
my $OTRSEmail = &#39;otrs-system@example.com&#39;;
# topics and dest. queues
my %Topics = (
    # topic =&#62; OTRS queue
    &#39;Info&#39; =&#62; &#39;info&#39;,
    &#39;Support&#39; =&#62; &#39;support&#39;,
    &#39;Bugs&#39; =&#62; &#39;bugs&#39;,
    &#39;Sales&#39; =&#62; &#39;sales&#39;,
    &#39;Billing&#39; =&#62; &#39;billing&#39;,
    &#39;Webmaster&#39; =&#62; &#39;webmaster&#39;,
);
</screen>Achten Sie darauf, dass die benutzte $OTRSEmail und die OTRS Queue in
    Ihrem OTRS existieren.</para>

    <para>Als nächstes ändern Sie die OTRS .procmailrc von:<screen>
# --
# Remove all X-OTRS Header (allow this only for trusted email)
# e. g. from *@example.com
# --
:0 fhw :
* !^From.*@example.com
| grep -vi &#39;^X-OTRS-&#39;
</screen>auf: <screen>
# --
# Remove all X-OTRS Header (allow this only for trusted email)
# just not emails with &#34;X-OTRS-Ident: ahfiw2Fw32r230dddl2foeo3r&#34; header!
# --
:0 fhw :
* !^X-OTRS-Ident: ahfiw2Fw32r230dddl2foeo3r
| grep -vi &#39;^X-OTRS-&#39;
</screen>Wenn eine eMail durch webform.pl generiert und an $OTRSEmail gesendet
    wird, wird sie an das entsprechende Thema, bzw. Queue verteilt.</para>
  </sect1>
</chapter>
