Hallo,
Falls jemand mal eine Lösung sucht, wie man Catchall Mails für mehrere Domains in einem Postfach mithilfe eines Sieve Prefilters zuordnen kann, dann hab ich hier eine Lösung:
require ["variables", "imap4flags", "regex", "fileinto", "mailbox" ];
if header :regex "X-Spamd-Result" "RCPT_MAILCOW_DOMAIN\\(\\-?[0-9]+\\.[0-9]+\\)\\[(.*)\\]" {
set "rcpt_domains" "${1}";
if string :contains "${rcpt_domains}" "domain1.de" {
addflag "domain1.de";
}
if string :contains "${rcpt_domains}" "domain2.de" {
addflag "domain2.de";
}
if string :contains "${rcpt_domains}" "domain1.de" {
fileinto :create "INBOX/domain1";
}
if string :contains "${rcpt_domains}" "domain2.de" {
fileinto :create "INBOX/domain2";
}
}
keep;
Zur Erklärung:
Die Empfangene Mail wird anhand des X-Spamd-Result Headers und der darin ausgewerteten RCPT_MAILCOW_DOMAIN Angabe darauf geprüft, über welche Domain sie an meinem Mailcow Server eingeliefert wurde. Dabei werden auch die Domains erfasst, deren Empfänger nur in BCC gestanden hatten.
Anschließend wird zunächst ein Flag mit dem Domainnamen gesetzt. Wenn das für alle Domains meines Mailcow Servers erfolgt ist, dann sortiere ich die Mails noch in einen Unterordner mit Namen der jeweiligen Domain ein. Bei Bedarf wird dieser mit erstellt. Falls vorher alle potenziellen Ordner bereits erstellt wurden und das :create weggelassen würde, könnte man auch das require “mailbox” weglassen (würde ich so machen, wenn ich wüsste, wie ich Ordner Domainübergreifend freigeben kann)…
Das abschließende keep; hab ich gesetzt, damit die Mail zusätzlich direkt im Posteingang liegen bleibt.
mfg
Wise
PS: Falls also jemand eine Idee hat, wie ich diese Ordner an Postfächer anderer Domains meines Mailcow Servers freigeben kann, würde ich mich sehr freuen. Das würde für mich die Sache noch abrunden.