# eMails empfangen

## Via POP3-Konten - der einfache Weg (PostMasterPOP3.pl)

OTRS ist in der Lage, eMails von POP3-Konten zu empfangen.

Konfigurieren Sie Ihre POP3-Konten über das Admin-Interface (POP3 Account).eMail-Adresse hinzufügen

Starten Sie "bin/PostMasterPOP3.pl" und alle eMails werden in Ihr OTRS geholt.

Ausserdem gibt es einen Beispiel-Cronjob (var/cron/postmaster_pop3.dist), der "bin/PostMasterPOP3.pl" alle 10 Minuten ausführt (s. auch Kapitel Cronjobs).

## Via Kommandozeilen-Programm und z.B. procmail (PostMaster.pl)

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

Das bedeutet, dass eMails im OTRS angezeigt werden, wenn der MDA (mail delivery agent, z.B. procmail) die eMails nach "bin/PostMaster.pl" durchleitet.

Um "bin/PostMaster.pl" auf der Kommandozeile (ohne MDA) zu testen, benutzen Sie folgendes:

    shell:~ # cat /opt/otrs/doc/test-email-1.box | /opt/otrs/bin/PostMaster.pl
    shell:~ #

Wenn die eMail in der Queue-Ansicht angezeigt wird, sind Ihre Einstellungen in Ordnung.

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 procmail Homepage.

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

    SYS_HOME=$HOME
    PATH=/bin:/usr/bin:/usr/local/bin
    # --
    # Pipe all email into the PostMaster process.
    # --
    :0 :
    | $SYS_HOME/bin/PostMaster.pl

Alle an den lokalen OTRS Benutzer gesendeten eMails werden an "bin/PostMaster.pl" durchgeleitet und dann in der Queue-Ansicht angezeigt.

### eMails via POP3 oder IMAP und fetchmail für PostMaster.pl empfangen

Um eMails von Ihrem Mailserver via POP3 oder IMAP für den OTRS-Rechner/lokalen OTRS-Benutzer und procmail abzuholen, benutzen Sie fetchmail. Hinweis: Voraussetzung ist eine funktionierende SMTP-Konfiguration auf dem OTRS-Rechner.

#### .fetchmailrc

    #poll (mailserver) protocol POP3 user (user) password (password) is (localuser)
    poll mail.example.com protocol POP3 user joe password mama is otrs

Vergessen Sie nicht, .fetchmailrc auf 710 zu setzen ("chmod 710 .fetchmailrc")!

Wenn "fetchmail -a" ausgeführt wird (ggf. via cron), werden alle eMails auf das lokale OTRS-Konto weitergeleitet.

## Filterung/Verteilung über OTRS/Webinterface

OTRS ist in der Lage, ankommende eMails je nach "To" und "Cc" Adresse zu verteilen. Einstellbar über das Admin-Interface.

Beispiel

Fügen Sie eine neue System-eMail-Adresse hinzu (Admin-Bereich -->> System-eMail-Adressen). eMail-Adresse hinzufügen

In diesem Fall werden alle ankommenden eMails (mit To: oder Cc: support@company.com) an die TEST1 Queue verteilt.

## Filterung/Verteilung über OTRS/PostMaster Module (für komplexere Verteilungsszenarien)

Falls Sie die "PostMaster.pl" oder "PostMasterPOP3.pl" Methoden benutzen, können Sie die X-OTRS-Header mit den OTRS/PostMaster-Filtermodulen modifizieren.

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

Es gibt verschiedene Standard-Filtermodule.

Hinweis: Der Jobname (z.B. $Self->{'PostMaster::PreFilterModule'}->{'Jobname'}) muss eindeutig sein!

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).

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

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).

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

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

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

## Filterung/Verteilung durch Procmail (für komplexere Verteilungsszenarien)

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???)

Der X-OTRS-Queue Mail-Header

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.

Beispiele

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).

Alle eMails von der scuba-dive Maillingliste in die scuba Queue aussortieren.

    :0 fhw :
    * ^TOscuba
    | formail -I "X-OTRS-Queue: scuba"

Alle eMails von Peter über Compiler an die william Queue weiterleiten

    :0 fhw :
    * ^From.*peter
    * ^Subject:.*compilers
    | formail -I "X-OTRS-Queue: william"

Und hier ein letztes Beispiel, die gesamte .procmailrc.

### .procmailrc

    # --
    # .procmailrc - procmailrc of the OTRS user
    # Copyright (C) 2001-2002 Martin Edenhofer (martin+code at otrs.org)
    # --
    # $Id: receiving_email.sgml,v 1.4 2004/01/26 08:45:08 robert 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 '^X-OTRS-'

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

    :0 fhw :
    * ^List-Id:.*OpenAntiVirus
    | formail -I "X-OTRS-Queue: OpenAntiVirus"

    :0 fhw :
    * ^Sender:.*example.com
    | formail -I "X-OTRS-Queue: example"

    :0 fhw :
    * TO:.*BUGTRAQ
    | formail -I "X-OTRS-Queue: BUGTRAQ"

    # --
    # Backup of all incoming emails.
    # It'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't process!)
    # If the database is down or the PostMaster.pl exit was not '0'!
    # --
    :0 :
    $SYS_HOME/var/spool/.

    # --
    # end of .procmailrc
    # --

Bitte schauen Sie in die procmailex man-page für mehr Beispiele.

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

## Beispiel für Filterung/Verteilung durch Procmail und ein Webformular

Dies ist ein Beispiel für ein Webformular, dass eine eMail für OTRS erzeugt. Sie finden dieses Perl-Skript in "$OTRS_HOME/scripts/webform.pl".

Sie haben ein Thema, Von, eMail, Betreff und Nachrichten Feld.

Ändern Sie die Einstellungen für das Webformular:

    # --
    # web form options
    # --
    my $Ident = 'ahfiw2Fw32r230dddl2foeo3r';
    # sendmail location and options
    my $Sendmail = '/usr/sbin/sendmail -t -i -f ';
    # email where the emails of the form will send to
    my $OTRSEmail = 'otrs-system@example.com';
    # topics and dest. queues
    my %Topics = (
        # topic => OTRS queue
        'Info' => 'info',
        'Support' => 'support',
        'Bugs' => 'bugs',
        'Sales' => 'sales',
        'Billing' => 'billing',
        'Webmaster' => 'webmaster',
    );

Achten Sie darauf, dass die benutzte $OTRSEmail und die OTRS Queue in Ihrem OTRS existieren.

Als nächstes ändern Sie die OTRS .procmailrc von:

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

auf:

    # --
    # Remove all X-OTRS Header (allow this only for trusted email)
    # just not emails with "X-OTRS-Ident: ahfiw2Fw32r230dddl2foeo3r" header!
    # --
    :0 fhw :
    * !^X-OTRS-Ident: ahfiw2Fw32r230dddl2foeo3r
    | grep -vi '^X-OTRS-'

Wenn eine eMail durch webform.pl generiert und an $OTRSEmail gesendet wird, wird sie an das entsprechende Thema, bzw. Queue verteilt.