Beiträge von Denny

    Moin,

    mal ganz ehrlich – ich wäre echt dafür, dass der b1gMailServer eine Funktion bekommt, mit der man solche Sachen wie „SPF none“ oder auch gefälschte Absender konsequent blocken kann.
    Gerade jetzt, wo so viele Fake-Mails und Erpresser-Müll unterwegs sind, wäre das wirklich ein Segen.

    Mir würde schon ein Schalter reichen wie:
    „E-Mails ohne SPF-Eintrag ablehnen“
    … oder dass man zumindest eine eigene Policy setzen kann, was mit solchen Mails passieren soll.

    Wer sieht das noch so?
    Vielleicht liest ja jemand vom Entwicklerteam mit, oder gibt’s schon einen Trick, wie man das halbwegs sauber in b1gMailServer abbilden kann?

    Fände das echt hilfreich, bevor ich weiter an irgendwelchen Workarounds schraube oder wieder alles per Hand filtern muss…

    Grüße

    Norbert


    ich bekomme aktuell viele X-Mozilla-Status: 0001
    X-Mozilla-Status2: 00000000
    Return-Path: <> ?
    Received: from [10.88.0.3] (115.193.32.34.bc.googleusercontent.com [34.32.193.115])
    by mail.domain.de (b1gMailServer) with ESMTP id 237E83A8
    for <domain@domain.de>; Tue, 24 Jun 2025 18:47:30 +0200 (CEST)
    Received-SPF: None ?
    identity=; client-ip=34.32.193.115;
    helo=[10.88.0.3]
    Content-Type: multipart/related; boundary="===============3329146821057136785=="
    MIME-Version: 1.0
    From: "emailn.de" <no-reply@domain.de>
    To: emailn@emailn.de
    Subject: =?utf-8?q?Failure_Delivery_Messages_domain=40domain=2Ede?=
    X-Priority: 2
    X-Antivirus: Avast (VPS 250625-2, 25.6.2025), Inbound message
    X-Antivirus-Status: Clean

    --===============3329146821057136785==
    Content-Type: text/html; charset="utf-8"
    MIME-Version: 1.0
    Content-Transfer-Encoding: base64


    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Betreibe einige Eigenentwicklungen und da prüfe ich beim Login immer ob es von der IP bereits ein Login gab und falls nicht informiere ich die Admin E-Mail-Adresse darüber, wäre eine nette Zusatz Funktion bei der man wenigstens informiert wird wenn doch ein Login stattgefunden hat von einer IP die man nicht kennt (wäre evtl. auch etwas für den LI bereich). Weiter müsste man weg von den SIDs kommen die immer in der URL auftauchen, gibt da elegantere varianten und immer mit dem Backend gegenprüfen anhand einer id / public ip etc... ob der User immer noch der User ist der sich Angemeldet hat.

    An so etwas arbeite ich auch allerdings ist das mit IP schwierig, da braucht man viele Daten und die IP ändern sich ständig, man könnte das nach Netz machen aber das wars dann schon. Geräte-Fingerprinting und Cookie-Sessions ist so mein Ansatz auch nochmal eine Überprüfung über 2FA oder Mailbestätigung machen wenns abweicht

    Moin zusammen,

    ich habe eine Frage zur Dateianhang- bzw. Upload-Filterung:

    In der Webdisk meines Systems kann ich ja verbotene Dateiendungen definieren – das funktioniert dort auch zuverlässig. Neuerdings kommen aber Schadcodes über SVG-Dateien, und ich möchte diese auch bei E-Mails blockieren.

    Allerdings bekomme ich SVG-Anhänge nicht zuverlässig geblockt, und mein bisher genutzter ClamAV-Scanner funktioniert seit dem Server-Upgrade auf Ubuntu 24.04 nicht mehr. Eine saubere Lösung über ClamAV ist derzeit also nicht möglich.

    Gab es nicht auch im Mailbereich des Systems eine Funktion, um bestimmte Dateiendungen oder MIME-Typen zu blockieren (wie z. B. .exe, .bat etc.)? Oder war das nur für die Webdisk gedacht?

    Falls jemand einen Tipp hat, wie ich das systemweit (z. B. über ein Plugin oder eine zentrale Prüfung) lösen kann, wäre ich dankbar. Alternativ auch gern Hinweise, wie man ClamAV unter 24.04 wieder stabil zum Laufen bekommt.

    Viele Grüße

    Norbert

    Ich habe auf meinem Testsystem ein paar alte Mails die ich nicht mehr lesen kann, das ist der selbe Fehler wie der, der auf meinem Produktivsystem in den Logs ausgegeben wird. Wenn ich neue Mails erstelle, dann sind diese auch wieder lesbar, es handelt sich um Mails die ich selbst verfasst habe vor dem Update


    Fatal error: Uncaught TypeError: ftell(): Argument #1 ($stream) must be of type resource, bool given in /usr/www/users/sendeq/serverlib/mailparser.inc.php:373 Stack trace: #0 /usr/www/users/sendeq/serverlib/mailparser.inc.php(373): ftell() #1 /usr/www/users/sendeq/serverlib/common.inc.php(1663) : eval()'d code(1): BMMailParser_Part->__construct() #2 /usr/www/users/sendeq/serverlib/common.inc.php(1663): eval() #3 /usr/www/users/sendeq/serverlib/mailparser.inc.php(528): _new() #4 /usr/www/users/sendeq/serverlib/common.inc.php(1663) : eval()'d code(1): BMMailParser->__construct() #5 /usr/www/users/sendeq/serverlib/common.inc.php(1663): eval() #6 /usr/www/users/sendeq/serverlib/mail.class.php(105): _new() #7 /usr/www/users/sendeq/email.read.php(61): BMMail->Parse() #8 {main} thrown in /usr/www/users/sendeq/serverlib/mailparser.inc.php on line 373

    Hi,

    ich weiß, dass der Thread etwas unübersichtlich geworden ist – mir selbst ist der genaue Zusammenhang auch nicht ganz klar. Ich habe den kompletten Ablauf bereits mit ChatGPT durchgearbeitet, verschiedene Stellen überprüft und dabei festgestellt, dass $stream den Wert false zurückgibt. Allerdings gibt es in diesem Fall keine erkennbare Fehlerrückgabe.

    Ich hatte bereits vorher eine Debug-Ausgabe eingebaut, um den Fehler einzugrenzen. Dabei stellte sich heraus, dass der Stream einfach leer war. Nachdem ich einen Fix eingebaut hatte, funktionierte plötzlich der Login-Bereich nicht mehr – und an der Stelle habe ich dann aufgegeben um nicht noch mehr kaputt zu machen, es ist halt ne Produktiv-Seite, ist halt Mist daran was zu ändern.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Problem bleibt bestehen, wenn ich den Fehler behebe hat das direkten Einfluss auf das Template, er erzeugt nach dem Login eine Schleife, verstehe das alles nicht auf jedenfall ist die error log voll damit, 1500 Fehler pro Tag

    Richtig gute und vor allem wichtige Idee!
    Wäre der Login dann ausschließlich über den Token möglich? Das wäre tatsächlich der beste Weg – ein Passwort gar nicht mehr zu akzeptieren verhindert effektiv, dass Bots mit gehackten Passwörtern über POP3 oder IMAP Zugriff erlangen.

    Außerdem fände ich es gut, wenn jemand das 2FA-Plugin so anpassen könnte, dass 2FA auch verpflichtend (gruppenweise) aktiviert werden kann! Ich glaube, genau da liegt aktuell das größte Manko.

    Wenn wir beim Thema Backup sind: Die zentrale Speicherung aller Mails bzw. Mail-Rumpfdaten in 1 Tabelle ({pre_mails) ist fatal. Das sollte man im Zuge der npassung ebenfalls ändern.

    Meine MySQL-Datenbank ist mittlerweile rund 300 GB groß, und allein die Mail-Tabelle umfasst ca. 160 GB. Das macht den Betrieb teuer, was RAM angeht, und wirkt sich massiv auf die Performance aus. Jede Operation auf dieser Tabelle ist extrem zeitaufwendig – man kann nicht einfach mal eben etwas ändern oder umstrukturieren, weil alles im laufenden Betrieb passieren muss.

    Sharding wurde hier erwähnt – das wäre grundsätzlich sinnvoll, aber in einem gewachsenen System mit zentraler Tabellennutzung nicht ohne Weiteres umsetzbar.

    Was man sich aber überlegen könnte:

    • Eine Archivfunktion im Adminbereich, die automatisch pro Jahr die Mails in eigene Tabellen auslagert (mails_2023, mails_2024, etc.). Neue Mails landen dann nur in der aktuellen Tabelle. Ältere Daten bleiben lesbar, belasten aber nicht mehr jede Abfrage.
    • Alternativ oder zusätzlich: Partitionierung nach Datum oder Benutzergruppen. Das reduziert die Menge an Daten, die bei einer Query gescannt wird, deutlich.
    • Sharding langfristig denkbar – etwa durch Aufteilung nach Usern auf verschiedene Tabellen oder Datenbanken –, aber das wäre ein größerer Umbau.

    Aktuell suche ich nach Möglichkeiten, wie sich das Ganze im laufenden Betrieb entschärfen lässt. Jede kleine Optimierung hilft, denn bei solchen Datenmengen zählt wirklich jede Sekunde.

    Jain, weil vor der Umstellung ging es ja, das ist erst seit der neuen Version so und die Mails hängen dann in der queue und erst wenn ich manuell ab arbeiten klicke gehen die raus, sind nicht viele... hier mal so ein header mit HTML body ohne Text


    BorgBackup wäre auch zu empfehlen. Es erstellt Backups inkrementell, verschlüsselt und dedupliziert. Für Hetzner gibt es eine Anleitung auf Storage Boxen: https://docs.hetzner.com/de/storage/sto…ssh-rsync-borg/. Macht am meisten nur Sinn, wenn man eine Datei pro Objekt wählt.

    Jup aktuell habe ich 28TB an Daten, da tuts die Storage box nicht mehr, ich nutze die für zwei kleine Dienste, die hat ja auch eine eigene Backup Funktion via snaps, ich mach aber auch da immer rsync die 4 TB sind in eigentlich schnell durch, eine Zeit lang hatte ich die Storage box sogar als Storage direkt eingesetzt auch produktiv allerdings gab da oft Wartungen, so dass ich das irgendwann umgestellt hab.

    Genau bei Rsync sicherst du ja immer den gesamten Blob, klar immer noch performanter wie 1000ende kleinst Daten aber von der datenmenge und laufzeit wahnsinn...

    das war bei mir schon immer ein Problem, damals wegen der Bandbreiten und HDD (iops), das problem ist halt mitgewachsen...wir haben zwar krasse Hardware und Gbit im Vergleich zu früher aber die Datenmengen sind halt auch mitgewachsen

    Wie Backupst du dein System?

    Dafür wäre es dann aber sehr hilfreich wenn pro Jahr oder Monat eine Datei da wäre, dann muss dein Backup nur das aktuelle (wo die meisten Veränderungen stattfinden) sichern und nicht immer alles...

    Wäre sinnvoll. Rsync tatsächlich noch, ich habe halt lediglich einen Hetzner Server aus der Serverbörse, das geht bei blob ganz gut aber bei der 7.2 mit den einzelnen MSG Datein dauert das halt ewig

    Hey, ja nicht ganz in der Grössnordnung habe nur 20-50k Mails pro Tag, wichtig ist das du einen Cluster betreibst und die Nodes selber genügend Ressourcen haben die Mails auch zu verarbeiten.

    Mein Plan ist, Proxmox Mail Gateway als vorgelagerten Filter zu nutzen – also rein zur Prüfung und Weiterleitung an den eigentlichen Mailserver (b1gMail). Die „richtige Arbeit“ erledigt also weiterhin der Hauptserver.

    Solange der einzelne Node stabil läuft und genug Ressourcen hat, sollte das für mein Setup vollkommen ausreichen.
    Einen Cluster würde ich ggf. später in Betracht ziehen, falls ich wirklich mehr Redundanz oder Lastverteilung brauche. Ich meine, habe ich ja jetzt auch nicht, ich habe einen Mailserver, der macht halt alles

    Hallo,

    ich vermute mittlerweile einen zusammenhang zwischen

    Code
    Message duplicate for <user@smIl.de> (MessageID) detected (<Message-ID>), processing stopped

    Ich habe 3000 duplicates am Tag, das deckt sich mit der Fehlermeldung, laut ChatGPT ist fopen fehlgeschlagen entsprechend hatten wir das so geprüft, verwendet wird die aktuelle mailparser von GitHub