Wow, dass ist ja mal eine Antwort!

Vielen Dank Markus, für deine ausführliche Analyse und du hast Recht, was rspamd betrifft und das ein Mail nur 1 x gecheckt wird.

Und die Vermehrung der Mails im spam- oder banned-Postfach ist natürlich meinem globalem Sievescript geschuldet.

Wenn das spam an 3 Empfänger gerichtet ist, dann landen 4 Mails im spam-Postfach (die 3 Empfänger und das vom archivpostfach, welches ja mit recipient_bcc_maps reinkommt.

Vielleicht hat irgendwer noch eine Idee, wie ich die Vermehrung gleich hier in meinem folgenden Script eliminieren könnte.

require "envelope";
# Mails, welche alle flags (bad attachment und spam) haben
if allof (header :contains "X-Spamd-Result" ["FILENAME_BLACKLISTED", "MIME_BAD_ATTACHMENT", "MIME_BAD_EXTENSION"],
header :contains "X-Spam" "Yes",
not envelope "To" "banned@meinedomain.at",
not envelope "To" "spam@meinedomain.at")
{
    redirect "spam@meinedomain.at";
    discard;
    stop;
}
# Mails, welche nur das spam flag haben
elsif allof (header :contains "X-Spam" "Yes",
not header :contains "X-Spamd-Result" ["FILENAME_BLACKLISTED", "MIME_BAD_ATTACHMENT", "MIME_BAD_EXTENSION"],
not envelope "To" "spam@meinedomain.at")
{
    redirect "spam@meinedomain.at";
    discard;
    stop;
}
# Mails, welche nur das bad attachment flag haben
elsif allof (header :contains "X-Spamd-Result" ["FILENAME_BLACKLISTED", "MIME_BAD_ATTACHMENT", "MIME_BAD_EXTENSION"],
not header :contains "X-Spam" "Yes",
not envelope "To" "banned@meinedomain.at")
{
    redirect "banned@meinedomain.at";
    discard;
    stop;
}

Sieve-Extension "duplicate" kenne ich (noch) nicht, habt ihr hiermit gute Erfahrungen?

PS: Bitte um Entschuldigung an die Liste, dass jetzt ein Postfix-Dovecot-Sieve-Post aus der ursprünglichen Nachricht geworden ist, aber eine neue Fragestellung an dovecot@listen.jpberlin.de war mir jetzt doch zu umständlich.

vg, Andi

Am 18.10.2021 um 20:38 schrieb Markus Winkler:
Hallo Andi,

On 18.10.21 17:26, Andreas Wass - Glas Gasperlmair wrote:
möchten in naher Zukunft auf Postfix mit Dovecot und rspamd (zur Zeit amavisd) umsteigen.

1.)    Alle eingehenden und ausgehenden Mails sollten zusätzlich mit postfix durch recipient_bcc_maps und sender_bcc_maps an die Archivpostfächer archiveingang@meinedomain.at und archivausgang@meinedomain.at weitergeleitet.

2.    Soll ein globales Sieve-Script alle Mails, welche header :contains "X-Spam" "Yes" haben in einen globalen Spam-Ordner redirecten

3.)    alle Mails welche header :contains "X-Spamd-Result" ["FILENAME_BLACKLISTED", "MIME_BAD_ATTACHMENT", "MIME_BAD_EXTENSION"] haben in einen globalen Banned-Ordner redirecten.

Das Problem dabei ist, dass auch alle Mails durch recipient_bcc_maps und sender_bcc_maps durch die Prüfung von rspamd geschickt werden und dann natürlich doppelt in den spam und banned ordner landen und die Filterung im Sievescript unnötig erschwert wird.

bist Du sicher, dass das so ist und die Mails x-fach durch Rspamd laufen? Hast Du das praktisch schon so getestet und gesehen, oder sind das momentan Vorüberlegung für Dein zukünftiges Setup?

Denn wenn ich mir das mal schnell im Log anschaue (und mich nicht vergucke ;-)), dann wird eine eingehende Mail nur ein Mal gecheckt und erst dann, wenn das alles erledigt ist, unter Angabe der einzelnen Empfänger per (in meinem Fall) LMTP an Dovecot übergeben und diese Mails dann von Dovecot in die Mailboxen des/der eigentlichen & des bcc-Empfänger(s) abgelegt. Zusätzlich laufen dabei ggf. vorhandene Sieve-Filterungen, das wären bei Dir oben also 2) und 3).

Nach meinem Verständnis und wie gesagt auch anhand der Logs zu urteilen, ist in dieser späten Phase der Postfix-Verarbeitung (qmgr) kein Milter/Rspamd mehr beteiligt, nach Übergabe an Dovecot dann sowieso nicht mehr.

Das Problem mehrfacher Mails in den Ordnern aus 2) und 3) entsteht wenn, dann m. E. erst am Ende der Verarbeitungskette:

Da die Mails nämlich erst _nach_ Rspamd dupliziert werden, haben alle gleichermaßen ggf. Spam-Tags etc. bekommen. Und damit dürftest Du die dann wohl tatsächlich doppelt in den Spam-/Banned-Ordnern drin haben. Das sollte man jedoch mit der Sieve-Extension 'duplicate' von Dovecot-Pigeonhole klären können.

Viele Grüße
Markus