Posts by HAL9000

    Ergänzen möchte ich noch:


    # FEHLER 9 - Leere Variablen (und Vergleiche)


    Beispiele:

    Code
    if string :is "${variable1}" ""
    {
        set :length "variable2" "";
    }

    In beiden Fällen erhalte ich: Eingabefeld darf nicht leer sein.

    Das wäre aber nach RFC 5229 durchaus zulässig:

    "empty String" sind also durchaus erlaubt, die dann einen :count von 0 ergeben würden.

    Auch hier steht:

    In RFC 5229 ist lediglich <value: string> vorgegeben. Es gibt keine Erwähnung, dass der String nicht leer "" sein darf.


    Für if string :is "${variable}" "" gibt es aber ein Workaround:

    if string :regex "${variable}" "^$"

    Bei der Nutzung von SIEVE-Regeln im netcup Webmailer sind mir einige (teils sehr ärgerliche) Bugs aufgefallen, die ich hier auflisten will.

    Eine Ergänzung der Liste (oder natürlich auch eine Korrektur/Lösung) ist gerne willkommen.


    Der Support von netcup selbst meint aber, dass bereits einige bugs bekannt seien und die Webmailer-Version in absehbarer Zeit aktualisiert werden soll.


    Dennoch im Folgenden eine Auflistung mir bekannter Fehler:



    # FEHLER 1 - Kommentare


    Kommentare werden gelöscht:

    Code
    require [...];
    #Kommentar
    # rule:[a]
    ...

    wird zu:

    Code
    require [...];
    # rule:[a]
    ...




    # FEHLER 2 - if-Verschatelungen


    Keine verschachtelten if-Bedingungen (und auch keine elsif und else)

    wird zu:

    Code
    require ["fileinto"];
    # rule:[Eine Regel, die E-Mails in Abhängigkeit vom Betreff und Absender-Domain sortiert.]
    if header :contains "subject" "test"
    {
        fileinto "INBOX.Test";
    }




    # FEHLER 3 - Variablensetzung


    Bei Sieve können Variablen so gesetzt werden:

    Code
    require ["fileinto","variables"];
    # rule:[Neue Variablen]
    
    set "variable_a" "100";
    
    # rule:[Bedingung]
    if string :is "variable_a" "100"
    {
        fileinto "INBOX";
    }

    Dies funktioniert auch bei netcup, wenn man es im Code so macht und dann auf den visuellen Editor rüberwechselt.

    Aber im visuellen Editor selbst, kann man Variablen nur wie folgt definieren:




    # FEHLER 4 - Variablennutzung


    Manchmal können Variablen nicht in einem numerischen Vergleich verwendet werden, wie z.B. bei der Überprüfung eines Spam-Scores. Hier ein Beispiel, wie es normalerweise nicht funktioniert:


    Hier ergibt der visuelle SIEVE-Editor bei netcup folgende Fehlermeldung zu ${spamscore_subject}:

    Unzulässige Zeichen im Eingabefeld

    Hier sollten aber Variablen (die einen Zahlenwert enthalten) erlaubt sein.




    # FEHLER 5 - i;ascii-numeric


    require ["comparator-i;ascii-numeric"] und :comparator "i;ascii-numeric" funktionieren zwar und werden beim Speichern auch nicht gelöscht:


    Code
    require ["comparator-i;ascii-numeric","editheader","relational","variables"];
    # rule:[Einfacher Vergleich]
    if string :value "gt" :comparator "i;ascii-numeric" "10" "9"
    {
        addheader "Subject" "10 is bigger than 9";
    }

    Das bleibt so. Aber im visuellen Editor gibt es keine Möglichkeit "i;ascii-numeric" auszuwählen, sondern der erzeugte code würde so aussehen:

    Code
    require ["editheader","relational","variables"];
    # rule:[Einfacher Vergleich]
    if string :value "gt" "10" "9"
    {
        addheader "Subject" "10 is bigger than 9";
    }

    Da die 1 aber vor der 9 kommt, würde es in diesem Beispiel nicht funktionieren.

    Man benötigt also eine Auswahlmöglichkeit für "i;ascii-numeric" (was man aber derzeit auch im Code manuell hinzufügen kann).




    # FEHLER 6 - i;ascii-casemap


    Im Gegensatz zu require ["comparator-i;ascii-numeric"] (was bei netcup vorhanden ist und funktioniert), gibt es bei require ["comparator-i;ascii-casemap"] leider mehr Probleme.

    i;ascii-casemap funktioniert zwar, wenn man nur im Code-Editor bleibt:

    Code
    require ["comparator-i;ascii-casemap","editheader","variables"];
    set "email1" "abc@abc.de";
    set "email2" "ABC@abc.de";
    # rule:[Test]
    if string :comparator "i;ascii-casemap" :is "${email1}" "${email2}"
    {
        addheader "Subject" "HAT GEKLAPPT";
    }

    Ergebnis: "HAT GEKLAPPT"


    Aber wenn man im visuellen Editor auf speichern klickt, werden require ["comparator-i;ascii-casemap"] und i;ascii-casemap komplett aus dem Code entfernt:

    Code
    require ["editheader","variables"];
    set "email1" "abc@abc.de";
    set "email2" "ABC@abc.de";
    # rule:[Test]
    if string :is "${email1}" "${email2}"
    {
        addheader "Subject" "HAT GEKLAPPT";
    }

    Ergebnis ist hier leider nicht: "HAT GEKLAPPT"



    Merkwürdig dagegen ist folgendes Verhalten:

    Code
    require ["editheader"];
    # rule:[Betreff: important]
    if header :contains "Subject" "important"
    {
        addheader "Subject" "HAT GEKLAPPT";
    }

    Wie im letzten Code-Beispiel haben wir hier kein i;ascii-casemap. Wenn ich jetzt eine E-Mail mit dem Betreff "IMPORTant" schreibe, sollte der Betreff ja nicht geändert werden, weil "IMPORTant" ≠ "important" und i;ascii-casemap ist nicht aktiv.

    Ergebnis: "HAT GEKLAPPT" (was nicht so sein sollte)



    Es gibt zwar eine Auswahlmöglichkeit im visuellen Sieve-Editor... aber da require ["comparator-i;ascii-numeric"] nicht gespeichert wird, kann es auch nicht angewendet werden werden.

    Anderes Beispiel in dem ich numerisch (ascii-numeric) auswähle:

    Code
    require ["comparator-i;ascii-numeric","editheader","relational"];
    # rule:[Kopfzeile von Nachricht entfernen]
    if true
    {
        deleteheader :is :comparator "i;ascii-numeric" "Subject" "100";
    }

    Hier konnte ich "i;ascii-numeric" auswählen aus der folgenden Liste:

    • Vorgabewert
    • strikt (Oktett)
    • Groß-/Kleinschreibung ignorieren
    • numerisch (ascii-numeric)


    aber wenn ich Groß-/Kleinschreibung ignorieren auswähle, wird dies nicht angewendet:

    Code
    require ["editheader"];
    # rule:[Kopfzeile von Nachricht entfernen]
    if true
    {
        deleteheader :is "Subject" "100";
    }




    # FEHLER 7 - Erlaubte Variablenzeichen


    Beispiel:

    Code
    require ["variables"];
    
    # rule:[Variable mit a<b]
    if true
    {
        set "variable_c" "a";
    }

    Hier wurde set "variable_c" "a<b" automatisch zu set "variable_c" "a".

    Das ist relevant, wenn man z.B. Variablen für regex abspeichern möchte.




    # FEHLER 8 - regex


    Das regex bei netcup unterstützt scheinbar kein Lookahead ((?=...)) und Lookbehind ((?<=...)).


    Beispiele:


    Ich hoffe, dass das für Kunden und für netcup hilfreich ist :)

    Ok, es scheint so zu sein, als ob netcup (oder SIEVE allgemein?) keine verschatelten if-Bedingungen akzeptieren.

    Dann ist es schon dumm, dass netcup bei "speichern" meldet, dass soweit alles geklapt hat.

    Hier fände ich eine Überprüfung auf verschachtelte if-Bedingungen schon sinnvoll.


    Der Großteil des Codes sieht netcup-konform so aus:


    allerdings komme ich hier zu einem Problem:


    Code
    # rule:[SPAM | Betreff anpassen basierend auf gesammeltem Präfix]
    if allof (string :value "ge" "${spam_score}" "${spamwert_subject}", not header :matches "x-spam-level" "*")
    {
        deleteheader :contains "Subject";
        addheader "Subject" "[SPAM-${integer_part}.${decimal_part}] ${original_subject}";
    }

    Netcup akzeptiert folgendes nicht:

    Code
    string :value "ge" "${spam_score}" "${spamwert_subject}"

    weil ${spamwert_subject} keine Zahl, sondern eine Variable ist.

    Der Code würde so funktionieren, aber in der visuellen Darstellung würde es zu Fehlern beim Abspeichern kommen:

    netcup_fehler_bei_variable_groesser_als.jpg


    Gibts dafür eine Lösung?

    Ich würde gerne folgenden SIEVE Code bei netcup eingeben:

    Das interessante ist:

    1) Ich kann den Code abspeichern und erhalte eine positive Bestätigung, dass es keine Fehler gibt. :)

    2) Der Code/die Filter funktionieren auch ganz exakt wie vorgesehen. :)


    Aber netcup zeigt mir nur folgende 4 Regeln visuell an: :(

    NETCUP_FEHLER_SIEVE.jpg


    Angenommen ich bennene die Regel: #3 um in -> Regel 3 und #4 in -> Regel 4, dann erhalte ich folgenden (von netcup automatisch gekürzten) Code: :(

    Netcup löscht hier 80% meines Codes.

    Selbst

    Code
    require ["editheader", "variables", "regex", "relational", "comparator-i;ascii-numeric", "fileinto"];

    wird gekürzt zu:

    require ["regex","variables"]; :(


    Ich würde den Code einfach so lassen. Habe aber Angst, dass da in Zukunft was schief gehen kann oder es Probleme gibt, weil netcup den Code visuell nicht wirklich erkennt (obwohl er technisch gut funktioniert).

    Was ist da der beste Plan?

    Auch auf diese Fragen hätte ich Antworten:


    Vermutlich kann man nicht beides und es müsste mittels SIEVE in den Spam-Ordner verschoben werden (lasse mich aber gerne eines Besseren belehren).

    Ja, es ist ab dem angegebenen Empfindlichkeitswert/Spam-Level.


    II) Welchen Sinn hat die schwarze Liste? Habt ihr da was eingetragen?

    Vermutlich, wenn man von bestimmten Absendern z.B. *@domain1.de besonders viel spam bekommt?

    Wäre aber trotzdem interessant, was andere da eingetragen haben.


    III) Ich vermute für detailliertere Regel (wie z.B. Spam-Level 1 mit [SPAM-1], Spam-Level 2 mit [SPAM-2], usw. zu kennzeichnen sollte man dann die SIEVE funktion benutzen?)

    Nein, man kann einfach im CCP bei:

    Spamnachrichten durch folgenden Text in der Betreffzeile kennzeichnen

    folgendes Eintragen:

    [SPAM-_SCORE_]

    Jetzt erhält man den Spam-Wert sogar mit einer Nachkommastelle:

    [SPAM-4.2] Glückwunsch! Gewinnen Sie ein exklusives ADAC Auto-Notfallset


    (geht das mit SIEVE auch mit der Nachkommastelle?)


    IV) Wie sinnvoll ist das Kontrollfeld Virenschutz-aktivieren?

    Der scheint deaktiviert worden zu sein. Bzw. die Auswahlmöglichkeiten sind deaktiviert, siehe hier:

    Webhosting Mailadresse - Virenschutz kann nicht eingeschaltet werden.


    Angeblich ist Virenschutz jetzt IMMER aktiviert.

    Leider stimmt das nicht, wie eine E-Mail von dont.panic.at beweist.


    Ich empfehle auch anderen Kunden netcup weiterhin darauf aufmerksam zu machen:

    mail@netcup.de oder Support Ticket

    Seit mindestens Februar 2024 werden Viren scheinbar von netcup einfach durchgewunken.

    Beispiel:

    1) Anmelden im CCP

    2) Auf DOMAINS klicken

    3) Auf die jeweilige Domain klicken

    4) Auf DNS klicken

    5) Hier einen neuen Eintrag hinzufügen

    netcup-dns.jpg


    Nun kann man einen DMARC-Eintrag machen:

    netcup_dmarc_beispiel_kl.jpg


    Host = _dmarc


    Type = TXT


    Destination:

    v= DMARC1;

    p= none ODER quarantine ODER recejt;

    rua= e-mail-fuer-rua@deine-domain.de;

    ruf= e-mail-fuer-ruf@deine-domain.de;

    pct= 100



    Beispiel:

    Code
    v=DMARC1; p=quarantine; rua=mailto:d@rua.domain3.de; ruf=mailto:d@ruf.domain3.de; pct=100


    Hier ist eine kurze Erklärung der DMARC-Parameter:

    • v=
      • Version: Gibt die Version des DMARC-Protokolls an (immer DMARC1).
    • p=
      • Policy: Bestimmt, wie nicht authentifizierte E-Mails behandelt werden:
        • none: Keine Aktion, nur Berichte.
        • quarantine: E-Mails als Spam markieren.
        • reject: E-Mails komplett ablehnen.
    • rua=
      • Aggregierte Berichte: E-Mail-Adresse, an die tägliche/zusammengefasste DMARC-Berichte gesendet werden (z.B. mailto:d@rua.domain.de).
    • ruf=
      • Forensische Berichte: E-Mail-Adresse für detaillierte Berichte über einzelne E-Mails, die die Authentifizierung nicht bestanden haben (z.B. mailto:d@ruf.domain.de).
    • pct=
      • Prozent: Gibt an, für wie viel Prozent der E-Mails die DMARC-Richtlinie angewendet wird (z.B. pct=100bedeutet 100% der E-Mails).


    Hier kann man das z.B. überprüfen:

    DMARC Validator (dmarcian): https://dmarcian.com/dmarc-inspector/

    Mail-tester: https://www.mail-tester.com

    Hi,


    im CCP kann ich hier hin gehen:


    E-Mail-Einstellungen für domain1.de

    Hier können Sie die Einstellungen des E-Mail-Services für diese Domain ändern.


    Vorgehensweise bei E-Mails an nicht vorhandene Benutzer *

    Weiterleitung an Adresse

    alles@domain1.de

    Die Adresse muss zur ausgewählten Domain gehören. Nur der Administrator kann eine externe Adresse oder eine gemeinsame Adresse für mehrere Domains angeben.


    Nun zu meiner Frage. Wie kann ich dafür sorgen, dass ich zwar alle-mails@domain1.de erhalte, aber die folgenden:

    info@domain1.de und contact@domain1.de und support@domain1.de aus spam-gründen nicht erreichbar sind?


    Hoffe, da gibt es eine Lösung :)

    Ich antworte mal selbst auf meine Frage:


    1) Zur jeweiligen E-Mail-Adresse gehen (quasi da, wo man neue E-Mail-Postfächer einrichtet und das Passwort vergibt)

    2) Auf de Tab "Spamfilter" klicken

    3) Spamfilter-Empfindlichkeit ist standardmäßig auf 7 gestellt (ändern bei Bedarf)


    Dann ergeben sich aber 4 neue Fragen:

    I) Man kann auswählen zwischen

    Spamnachrichten durch folgenden Text in der Betreffzeile kennzeichnen

    und

    Spam in den Spamordner verschieben

    - ab welchem Spam-Wert gilt das? (oder ist das quasi (über dem) Empfindlichkeitswert?)

    - kann man auch 'beides' auswählen?


    II) Welchen Sinn hat die schwarze Liste? Habt ihr da was eingetragen?


    III) Ich vermute für detailliertere Regel (wie z.B. Spam-Level 1 mit [SPAM-1], Spam-Level 2 mit [SPAM-2], usw. zu kennzeichnen sollte man dann die SIEVE funktion benutzen?)


    IV) Wie sinnvoll ist das Kontrollfeld Virenschutz-aktivieren?

    Hi,


    gibt es (außerhalb von den SIEVE-Regeln pro Mail-Postfach) eine Möglichkeit festzulegen, ab welchem 'X-Spam-Level'-Wert E-Mails abgelehnt werden?


    Derzeit sehe ich, dass E-Mails mit 'X-Spam-Level: ******' noch durchgelassen werden.

    So wie ich das recherchiert habe, scheint Port 465 ein immer noch sehr häufig genutztes aber veraltetes Überbleibsel zu sein.

    Quote

    Port 465 wird manchmal auch für SMTPS verwendet. Allerdings ist dies eine veraltete Implementierung und wenn möglich sollte es Port 587 sein.

    Hier ist auch eine interessante Tabelle, die einige Hoster anzeigen und welche Ports sie nutzen.

    Die meisten den standartisierten 587er Port.

    Nur wenige den 465er Port (*zensiert* + *zensiert* <- beide Anbieter dürfen hier im Foren wohl nicht genannt werden ^^ ) und einige beide Ports.


    Der 587er (und 993er) erscheint mir sinnvoll, falls möglich.. aber Anbieter wie netcup (übrigens auch domainFactory) empfehlen/sagen ja in den Settings 465 (was mich jetzt doch etwas grübeln lässt welcher optimal wäre).

    netcup_mail_ports.jpg

    Nichts, da Webserver und Mailserver getrennte Server sind.

    Schadet es denn das aktiviert zu haben (wenn ichs bereits aktiviert habe quasi).

    Trotzdem hat man teilweise in den Oberflächen noch Überbleibsel von den deaktivierten Diensten.

    Ich hoffe, dass ist kein Zeichen davon, dass sich netcup in den nächsten Jahren auflösen möchte und keinen Sinn mehr darin sieht das noch rauszunehmen.

    Glaube ich selbst jetzt eher nicht.. aber wer weiß?

    Kommt immer auf den Client drauf an. Bei Apple Mail sieht das z.B. so aus:

    Ich frage mich grade..

    Wenn man das Häkchen bei [X] Verbindungseinstellungen automatisch verwalten

    (bei apple Mail) aktiv lässt... Nimmt apple Mail dann die Ports 143 und 587 (die man anschließend sehen würde, wenn man das Häkchen entfernt [ ])? Oder wie kann man nachsehen welche die "automatisch gewählten Ports" sind?

    Geht zwar etwas über das netcup-Wissen hinaus, aber vielleicht weißt du/jemand trotzdem die Antwort.

    Hallo,


    beim SSL-Zertifikat kann man die Domain auswählen und auf "E-Mail schützen" klicken:

    0_ssl_1.jpg

    Anschließend wird das auch im SSL/TLS-Zertifikat-Menü angezeigt:

    0_ssl_2.jpg



    - Was genau bringt das?

    - Ich vermute mal man sollte es machen? Bzw. es kann nicht schaden?

    - Dann irgendwo (E-Mail-Einstellungen, ...) auswählen kann/braucht man es aber nicht, oder?

    - Und wieso kann man das zwar "anwenden" aber anschließend nicht mehr "entfernen" (außer ich lösche das SSL-Zertifikat)?


    - Haben eigentliche andere (kostenpflichtige) SSL-Zertifikate im Vergleich zu den kostenlosen von netcup irgendeinen Vorteil für den nicht IT-versierten Normalverbraucher?

    Hey,


    im Gegensatz zu vielen Anbietern kann man bei netcup sieve nutzen.

    So wie ich das sehe muss ich mich dafür aber bei webmail mit der E-Mail-Adresse einloggen und kann dann Einstellungen für diese spezifische E-Mail-Adresse hinterlegen.


    Bei meinem (sehr schlechten) früheren Anbieter domainFactory konnte ich globale E-Mail-Filter anlegen.

    Z.B.: wenn der Absender @wichtig.de enthält, dann markiere den Betreff mit [WICHTIG]

    Diese konnte ich dann auf einzelne E-Mail-Adressen, oder auf ganze Domains (alle E-Mail-Adressen der Domain) oder eben auf absolut alle E-Mail-Adressen, Domainübergreifend aktivieren.


    Ist das bei netcup auch möglich?

    Danke schon mal für deine Antworten :)


    Nein. Verwende einfach überall den mxXXXX.netcup.net-Eintrag.

    Wie geht das?


    Bei den Ports 993 und 465 wird von Anfang an eine TLS-Verbindung aufgebaut, bei den anderen erst eine unverschlüsselte und dann (optional) auf TLS gewechselt.

    Klingt so, als ob man nicht die 143 und 587 Standardeinstellungen, sondern am besten gleich die Ports 993 und 465 verwenden sollte ;)