Dies war meine endgültige Lösung nach Recherche und Hilfe von @tarleb
Meine E-Mail-Zustellung erfolgte über ein sendmailProgramm, das meiner E-Mail einige zusätzliche Header hinzufügte. Ich könnte einen Mitter (E-Mail-Filter) verwenden, um eingehende E-Mails zu filtern und die sendmailVerwendung zu löschen. Ich habe mich jedoch entschlossen, für die Zustellung auf Dovecot LDA zu wechseln.
Mein ursprünglicher Filter war zu Beginn von Postfix master.cf:
smtp inet n - - - - smtpd -o content_filter=spamassassin
Und am Ende der Datei:
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Ich habe das Ende der Datei geändert, um die lokale Übermittlung von Dovecot zu verwenden:
spamassassin unix - n n - - pipe
flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e
/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
Bearbeiten Sie nun die Postfixes main.cfund fügen Sie sie hinzu (optional, aktivieren Sie (3) unten):
spamassassin_destination_recipient_limit = 1
Jetzt wird Ihre E-Mail ohne Änderungen an den Headern über Dovecot LDA zugestellt. Für die Neugierigen hier einige Details zu meiner Konfiguration:
- Diese Konfiguration kann mit Trennzeichen für Plusadressierung / Unteradressierung / Empfänger verwendet werden (E-Mails, an die adressiert
user+nospam@example.comwird, werden in den user@example.comPosteingang gesendet). Aus diesem Grund habe ich hinzugefügt -d ${user}@${nexthop}, dass das +und alles bis zur Domain entfernt wird. Um diese Funktion zu aktivieren, auch sicher sein hinzuzufügen recipient_delimiter = +in main.cf;
- Meine Flaggen
flags=DROhufügen nichts Ungewöhnliches hinzu, aber sie können hier verstanden werden: http://www.postfix.org/pipe.8.html ;
spamassassin_destination_recipient_limit = 1ist erforderlich, um sicherzustellen, dass jeder Empfänger von Spamassassin individuell verarbeitet wird. Dies ist aufgrund des Dobigen Flags erforderlich (einschließlich X-Original-ToHeader). Wenn Sie die DFlagge haben und keine spamassassin_destination_recipient_limit = 1E-Mail mit mehreren Zielen festlegen, wird diese nicht zugestellt! Wenn Sie sich nicht für diesen Header interessieren, können Sie das Flag entfernen und dies wird nicht benötigt.
Bearbeiten: Bonusinhalt - Verschieben Sie Ihren SPAM in den JunkOrdner!
Sie können Dovecot auch so konfigurieren, dass als SPAM erkannte E-Mails in den JunkIMAP-Ordner verschoben werden . Dies wird Ihnen mit Sicherheit das Leben leichter machen. Folgen Sie einfach diesem:
Bearbeiten /etc/dovecot/conf.d/15-mailboxes.confund kommentieren / fügen Sie den JunkOrdner mit hinzu (sollte sich in dem namespace inboxAbschnitt in der Nähe befinden mailbox Trash):
mailbox Junk {
special_use = \Junk
}
Installieren dovecot-sievemit apt-get install dovecot-sieve;
Bearbeiten /etc/dovecot/conf.d/90-sieve.confund kommentieren Sie die Zeile:#sieve = ~/.dovecot.sieve
Bearbeiten /etc/dovecot/conf.d/90-plugin.confals:
plugin {
sieve = /etc/dovecot/sieve/default.sieve
}
Bearbeiten /etc/dovecot/conf.d/15-lda.confund /etc/dovecot/conf.d/20-lmtp.confanpassen:
protocol lda/lmtp { # do not copy/paste this line!
mail_plugins = $mail_plugins sieve
}
WARNUNG : Möglicherweise haben Sie andere Einstellungen unter der protocolAuswahl, behalten Sie diese bei. Die Zeile protocol lda/lmtpändert sich in den Dateien, behalten Sie das Original.
Ordner erstellen /etc/dovecot/sieve/
Datei /etc/dovecot/sieve/default.sievemit folgendem Inhalt erstellen :
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
}
Ändern Sie die Ordnerberechtigungen für Ihren virtuellen E-Mail-Benutzer und Ihre Gruppe wie folgt : chown vmail:vmail /etc/dovecot/sieve/ -R. Wenn Sie diesen Taubenschlag verpassen, wird sich beschweren!
Starten Sie alles neu: service postfix restart; service dovecot restart; service spamassassin restart
Versuchen Sie, eine E-Mail an eine E-Mail auf dem Server (von einem externen Server) zu senden, zuerst eine normale E-Mail und dann eine andere mit diesem Betreff : XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X. Die zweite E-Mail sollte in den JunkOrdner und die erste in Ihren Posteingang.
Wenn dies beim ersten Versuch nicht funktioniert, sehen Sie sich die Protokolle an: tail -f /var/log/mail.logund senden Sie die E-Mail, während sie ausgeführt tailwird. Ein gut funktionierendes Setup sollte stored mail into mailbox 'INBOX'oder melden stored mail into mailbox 'Junk'.
ReceivedHeader, nur dieX-Spam-*Header werden hinzugefügt ... Warum und wie?