
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_bcc
zu 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/aliases
Zusatz:
bcc_script: |/usr/local/bin/bcc_script.py
(vergessen Sie nicht, es nach dem Bearbeiten dieser Datei auszuführen newaliases
).
Im /etc/postfix/main.cf
Zusatz:
always_bcc = bcc_script
Der /usr/local/bin/bcc_script.py
Vorgang 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.