Postfix: Eingehende E-Mails zurückschicken, aber trotzdem zustellen

Postfix: Eingehende E-Mails zurückschicken, aber trotzdem zustellen

Ich betreibe meinen eigenen Mailserver, werde aber von einer bestimmten Person mit Spam bombardiert. Um diese Person davon abzuhalten, mir weitere E-Mails zu schicken, möchte ich die eingehenden E-Mails (basierend auf ihrer E-Mail-Adresse) zurückweisen. Ich möchte aber trotzdem, dass die E-Mail zugestellt wird, da sie als „Beweis“ für Online-Belästigung dienen könnte.

Ich dachte daran, die eingehende E-Mail an zwei Konten (in der virtuellen Benutzertabelle) zu senden. Eines nimmt die E-Mail an, das andere schickt sie zurück, indem es eine E-Mail mit der Nachricht sendet, dass die Zustellung fehlgeschlagen ist.

Ist das möglich? Und wie richte ich das in Postfix ein?

Vielen Dank im Voraus.

Antwort1

Grundsätzlich möchten Sie nicht, dass E-Mails hier zurückgewiesen werden, für manche Absender sollte Ihr Server jedoch dennoch zusätzliche Nachrichten generieren.

Sie können ein Skript schreiben, das eine Nachricht erstellen kann, diesieht aus wieeinen Bounce (z. B. das Erstellen eines „Fake Bounce“) und arrangieren Sie die Dinge so, dass Nachrichten von diesem Absender dieses Skript auslösen,Zusätzlichzur normalen Lieferung.

Eine Möglichkeit hierzu besteht darin,always_bcczu einem Alias, und das Ziel dieses Alias ​​sollte der Skriptpfad seinmit dem vorangestellten Pipe-Zeichen, sodass das Skript ausgeführt und mit der zu analysierenden Nachricht gefüttert wird. Die Nachricht wird auf stdin angezeigt. Das Skript könnte dann die Nachricht analysieren, die Absenderadresse prüfen und entweder erfolgreich beenden, ohne etwas zu tun, oder einen gefälschten Bounce erstellen. Da dies nur ein zusätzlicher Empfänger der Nachricht ist, wird der Standard-Empfangspfad für E-Mails nicht geändert; die E-Mail wird weiterhin an den ursprünglichen Empfänger zugestellt. Stellen Sie jedoch sicher, dass das Skriptstetserfolgreich ausgeführt wird (d. h. es tritt nie ein Fehler mit einem Fehlercode ungleich Null auf), sonst der AbsenderWillehaben einen echten, ziemlich kryptischen Sprung.

Im /etc/aliasesZusatz:

bcc_script: |/usr/local/bin/bcc_script.py

(vergessen Sie nicht, es nach dem Bearbeiten dieser Datei auszuführen newaliases).

Im /etc/postfix/main.cfZusatz:

always_bcc = bcc_script

Der /usr/local/bin/bcc_script.pyVorgang beginnt ungefähr so:

#!/bin/env python3

import sys, email

try:
    msg = email.message_from_bytes(sys.stdin.read()) 

    if msg['From'] != '[email protected]':
        sys.exit(0)

    # creating of the fake bounce here
    ...

except Exception:
    pass
    # do nothing, fail silently to avoid bounces if the code above throws runtime error

Beachten Sie, dass ich diesen Code nicht getestet habe und er möglicherweise nicht sofort funktioniert. Weitere Beispiele finden Sie im Internet.

verwandte Informationen