Beiträge von Denny

    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


    Moin Jungs,

    ich spiele inzwischen ernsthaft mit dem Gedanken, Proxmox Mail Gateway einzusetzen. Die Betrüger vertreiben mir nach und nach die Kunden mit ihren Erpressermails – direkt von deren eigener E-Mail-Adresse. Ich bekomme die einfach nicht geblockt. Spannend finde ich auch, dass ich mit Proxmox gleich mehrere meiner Dienste damit "abfrühstücken" könnte.

    Aktuell wird „SPF none“ trotz aktiver SPF-Prüfung nicht geblockt. Eine DMARC-Policy auf „reject“ bringt nichts, wenn der empfangende Mailserver DMARC nicht prüft. Die DANE-Prüfung ist zu streng und die HELO-Prüfung sorgt dafür, dass manche legitime Mails nicht zugestellt werden.

    Setzt einer von euch Proxmox Mail Gateway bei größeren Projekten ein – also im Bereich 500.000 bis 1 Million Mails pro Tag? Macht das Ding Ärger oder läuft das weitgehend reibungslos? Mir ist klar, dass man damit nicht alle Probleme beim Empfang lösen kann, aber vielleicht zumindest ein paar.

    Gibt es eigentlich auch Nachteile bei der Nutzung von Proxmox MG? Ich meine wirklich gravierende – denn weniger Last auf dem eigentlichen Mailserver wäre schon ein großer Vorteil.

    Das könnte tatsächlich die Ursache sein und würde erklären, warum seit der Umstellung einige Mails in der Queue hängen bleiben. Es handelt sich dabei häufig um Bounces – ich prüfe das nochmal genauer.

    Bei der App bin ich inzwischen ein Stück weitergekommen: Das Problem lag vermutlich an der Anzeige eines Bildes, das durch die CSP blockiert wurde.

    Ich habe die Umsetzung jetzt angepasst, sodass Bilder direkt als Anhang eingefügt werden – ohne Vorschau. Das sollte ausreichen.

    Der Fehler scheint also nicht unmittelbar mit der App selbst zusammenzuhängen.

    Moin,


    ich brauche ein wenig Hilfe, nachdem ich nun PHP8.3 am laufen habe und die App ganz normal läuft haben sich doch ein entscheidender Fehler eingeschlichen und zwar kann ich keine Datein mehr hochladen


    Das müsste eigentlich der Fehler sein ansonsten wird von der app selbst kein fehler geworfen lediglich eine Warnung:

    Code
    [24-Apr-2025 06:47:52 UTC] PHP Warning:  Undefined array key "bcc" in /var/www/web0/htdocs/plugins/mb_app/action/email/do/send-mail.php on line 13


    Ich weiß auch nicht so richtig was, wo und wie, weil ich bekomme den Fehler nicht tiefer untersucht. Die Vermutung das es eventuell an PHP 8.3 liegt konnte ich nicht sehen, eher was mit dem multi upload oder berechtigungen?

    Das könnte der relevante Code-Abschnitt sein

    Gerade ein Kunde hat bezahlt aber ich kann die Zahlung nicht über den Code in der Willkommensansicht im Admin freischalten:


    Fatal error: Uncaught Error: Non-static method BMPayment::ActivateOrderWithVKCode() cannot be called statically in /var/www/web0/htdocs/admin/payments.php:470 Stack trace: #0 {main} thrown in /var/www/web0/htdocs/admin/payments.php on line 470


    payment.class.php - `BMPayment::ActivateOrderWithVKCode()` muss static sein

    Idee - Passwort Recovery Code

    1. Generierung des Wiederherstellungs-Codes

    • Bei erfolgreicher Registrierung soll ein zufälliger 30-stelliger alphanumerischer Code (Großbuchstaben + Ziffern) generiert werden.
    • Beispiel: AB7D3K9QP5L0XJW82HC1ZRFM4YNU6T

    2. Speicherung in der Datenbank

    • Der Code soll einmalig generiert und fest mit dem Benutzerkonto verknüpft werden.
    • Speicherung erfolgt gehasht (z. B. SHA256) in der Benutzertabelle, z. B. in einer neuen Spalte recovery_seed.
    • Es wird empfohlen, zusätzlich zur Hash-Sicherung einen Salt zu verwenden.

    3. Anzeige nach Registrierung

    • Der Code wird dem Benutzer einmalig nach erfolgreicher Registrierung angezeigt.
    • Wichtiger Hinweistext für den Benutzer: „Bitte speichern Sie diesen Wiederherstellungscode sicher. Er kann nicht erneut angezeigt werden.“

    4. Verwendung im Passwort-Wiederherstellungsprozess

    • Im Formular „Passwort vergessen“ wird ein zusätzliches Eingabefeld für den 30-stelligen Code integriert.
    • Nach Eingabe prüft das System, ob der eingegebene Code mit dem gehashten Seed in der Datenbank übereinstimmt.
    • Bei Erfolg wird der Benutzer zum Passwort-Reset-Formular weitergeleitet.

    5. Sicherheit

    • Keine Möglichkeit, den Seed erneut anzeigen zu lassen.
    • Optional: Möglichkeit zur Deaktivierung des Seeds nach erfolgreichem Zurücksetzen oder manuellem Zurücksetzen im Adminbereich.

    Moin,

    in der alten Version (7.4 PL3) funktioniert die Vorschau-Einstellung wie gewünscht: Ich habe bisher nur einen Dienst auf die OpenSource-Version umgestellt, beim anderen bleibt die Vorschau z. B. dauerhaft auf „unten“, wenn ich das einmal eingestellt habe.

    In der neuen Version ist mir folgendes Verhalten aufgefallen (also Vorschai ist immer aktiv):
    Wenn ich mich mit dem Handy einlogge, ist die Vorschau immer unten.
    Bin ich aber parallel am Desktop eingeloggt, ändert sich dort die Vorschau plötzlich ebenfalls auf „unten“, obwohl ich sie dort eigentlich auf „rechts“ eingestellt hatte.
    Sobald ich den Browser am Handy wieder schließe, springt die Desktop-Ansicht zurück auf „rechts“.

    Es scheint also, als würde die Vorschau-Position aktuell geräteübergreifend synchronisiert, statt benutzerspezifisch oder pro Gerät separat gespeichert zu werden oder es ist eben abhängig vom view