Ich muss meine eingehenden E-Mails nach diesen drei Regeln nach oben klassifizieren:

  1. Wenn die E-Mail an eine @somedomain.tld gesendet wurde, kopieren Sie diese E-Mail nach "somedomain_tld".
  2. Wenn die E-Mail an eine andere @*.tld gesendet wurde, kopieren Sie diese E-Mail nach "others_tlds". (any other = "nicht somedomain.tld")
  3. Den Rest der E-Mails in einen dritten Ordner "Rest" kopieren.

Ich verwende dafür Taubenschlagsiebregeln.

Es gibt noch eine zusätzliche Bedingung: Die drei oben genannten Regeln müssen auf jede "An:"-Adresse in der E-Mail angewendet werden... Im komplexesten Fall sollte die E-Mail also in die drei Ordner kopiert werden

Beispiel: Die folgende E-Mail soll in die drei Ordner kopiert werden:

From: [email protected]
To: [email protected], [email protected], [email protected]
Subject: Test Email

This is a test email
  1. Wegen " [email protected] " sollte diese E-Mail nach "somedomain_tld" kopiert werden
  2. Wegen " [email protected] " sollte diese E-Mail nach "others_tlds" kopiert werden
  3. Wegen " [email protected] " sollte diese E-Mail nach "rest" kopiert werden

Das Erfordernis und die erste Regel ist einfach:

require ["fileinto","copy"];
if address :is :domain "to" "somedomain.tld" { fileinto :copy "somedomain_tld"; }

aber der zweite weiß nicht wie es geht:

if address :matches :domain "to" "*.tld" { fileinto :copy "others_tlds"; }

wird auch mit somedomain.tld übereinstimmen, was nicht beabsichtigt ist ... (wenn ich eine E-Mail mit "An: [email protected] " habe, wird sie in somedomain_tld (OK) und other_tlds (BUG) kopiert)

Für #3 habe ich keine Ahnung.

Ich habe auch an Regexes gedacht, aber ich weiß nicht, wie man "jede Domain außer dieser" in einem Sieb-Regex (oder einem anderen Regex-Stil) ausdrückt.

Weiß jemand, wie man das Sieb des Taubenschlags biegt, um 1,2,3 zu tun?

answer
require ["fileinto"];
if header :contains "To" "domain.tld"
{
        fileinto "INBOX/domain_tld";
        stop;
}
if header :contains "To" ".tld"
{
        fileinto "INBOX/other_tld";
        stop;
}
if true
{
        fileinto "INBOX/rest";
        stop;
}