Bedingte E-Mail Weiterleitung je nach Absender

  • Stell mir folgende Frage:

    Angenommen ich hab die Domain example.com und die Mailbox alice@example.com. Ich möchte nun dass wenn ein eingehendes mail von office@lieferant.com an alice daher kommt, dieses auch *zusätzlich* an bob@example.com (ebenfalls Mailbox auf dem selben pd-admin Server) weitergeleitet wird. Da müsste man doch was mit einem .qmail File zaubern können, oder?

    Ich bild mir ein ich hab sowas mal hinbekommen, allerdings schon viele Jahre her.


    Danke für einen Schubs in die richtige Richtung.

  • Es gibt doch im pd-admin eMail-Menü die Möglichkeit eine eMail an eine eMail-Adresse und eine alternative eMail-Adresse senden zu lassen.


    Kundenmenü->E-Mail->Mailboxen->Kopie-An

    Ist mir natürlich klar. Aber wie gesagt, es geht um eine bedingte Weiterleitung. Nur Mails von einem bestimmten Absender sollen zusätzlich weitergeleitet werden.

  • Mit pd-admin wird sieve mitgeliefert. Darüber kann man ein Filter erstellen. Die Filter werden serverseitig ausgeführt. Folgendes habe ich getestet und funktioniert:

    Code
    require ["copy"];
    if header :contains "From" "office@lieferant.com"
    {
    redirect :copy "bob@example.com";
    }

    Angelegt wird der Filter unter


    /home/popuser/popboxen/lieferant.com/loginid/sieve/default.sieve


    Hier einmal die Berechtigungen des Ordners:

    Code
    $ ls -al .
    insgesamt 4
    drwx------. 3 popuser popuser 38 9. Apr 18:20 .
    drwxr-x---. 5 popuser popuser 222 9. Apr 18:21 ..
    -rw-------. 1 popuser popuser 220 9. Apr 18:20 default.sieve
    drwx------. 2 popuser popuser 6 27. Mär 2019 tmp

    Der tmp Ordner wurde/wird glaube ich vom Service selber angelegt. Dann wird ein Symlink unter


    /home/popuser/popboxen/lieferant.com/loginid/


    angelegt:

    Code
    $ ls -al | grep sieve
    lrwxrwxrwx. 1 root root 19 26. Feb 14:03 .dovecot.sieve -> sieve/default.sieve
    -rw-------. 1 popuser popuser 307 9. Apr 18:18 .dovecot.sieve.log
    drwx------. 3 popuser popuser 38 9. Apr 18:29 sieve

    Die Datei .dovecot.sieve ist so per Default in

    Code
    $ grep -E "sieve =" /usr/local/pd-admin2/dovecot-2.2/etc/dovecot/conf.d/90-sieve.conf
    sieve = ~/.dovecot.sieve

    definiert.

  • Ich hab das mal genau so umgesetzt, einzig mit der Einschränkung dass ich angenommen habe dass Du Dich hier vertan hast:


    Angelegt wird der Filter unter


    /home/popuser/popboxen/lieferant.com/loginid/sieve/default.sieve


    Weil "lieferant.com" ist ja die Domain des externen Absenders. Hier hab ich jeweils immer die Kundendomain (bzw. Empfängerdomain) im Pfad eingesetzt.


    Leider tut es nicht, weder die Weiterleitung wird ausgeführt, noch erscheint irgendwas im maillog... Das Mail wird so wie vorher einfach nur dem Empfänger zugestellt.

  • Der Pfad für lieferant.com war auch nur beispielhaft ;)


    Ich vermute dann Mal, dass sieve in dovecot bzw. pda nicht aktiviert ist. Bitte einmal gegenprüfen:


    /opt/pdadmin/etc/pdadmin.conf:

    Code
    $mail_delivery_agent = 'sieve22';

    /usr/local/pd-admin2/dovecot-2.2/etc/dovecot/dovecot.conf:

    Code
    protocols = imap pop3 lmtp sieve

    /usr/local/pd-admin2/dovecot-2.2/etc/dovecot/conf.d/15-lda.conf:

    Code
    protocol lda {
    mail_plugins = $mail_plugins sieve
    }

    /usr/local/pd-admin2/dovecot-2.2/etc/dovecot/conf.d/20-lmtp.conf:

    Code
    protocol lmtp {
    mail_plugins = $mail_plugins sieve
    }

    Und zum Schluss muss der Inhalt der .qmail Datei unter

    /home/popuser/popboxen/domain.de/loginid/.qmail so aussehen:

    Code
    |/home/popuser/spamfilter.pl
    |/var/qmail/bin/preline -f /usr/local/pd-admin2/dovecot-2.2/libexec/dovecot/deliver

    Wenn das gegeben ist sollte der Filter angewandt und die Mail zugestellt werden. Wenn nicht sollte sie Zustellung im Log einmal verfolgt werden. Ich muss auch noch sagen, dass ich den Filter mit zwei lokalen Mailboxen getestet hatte. Nicht mit Zustellung an eine externe Mailbox.

  • Kann mich nur immer wieder für Deine Geduld und Deine hervorragenden Erklärungen bedanken. Es funktioniert nun wie erwartet.


    Problem war dass auf dem betreffenden Server die "mail_plugins" Zeile in den beiden Files auskommentiert war.


    Danke nochmal!

  • /usr/local/pd-admin2/dovecot-2.2/etc/dovecot/conf.d/15-lda.conf:

    Code
    protocol lda {
    mail_plugins = $mail_plugins sieve
    }

    /usr/local/pd-admin2/dovecot-2.2/etc/dovecot/conf.d/20-lmtp.conf:

    Code
    protocol lmtp {
    mail_plugins = $mail_plugins sieve
    }

    bis auf diese 2 Änderungen muss bei einer Neuinstallation nichts weiter geändert werden.


    Wäre schön, wenn es gleich Out of the box funktionieren würde. :)