Beiträge von Sebijk

    Das b1gmail-Plugin zur App ist mit php 8 kompatibel. Sobald ihr also b1gmail-core mit php 8 kompatibel gemacht habt, wird auch meine App damit funktionieren. (Vorausgesetzt ihr benennt die Klassen/Funktionen nicht um oder ändert irgendwelche Methoden-Signaturen.) Ich erwarte, dass man unter php 9 erste kleine Anpassungen durchführen muss.

    Sollte das Plugin BMUser::Fetch nutzen: Ab Beta 3 wurde folgendes geändert.

    Mit Beta 3 wurde die Funktion BMUser::Fetch zu BMUser::staticFetch geändert. Wenn sie genutzt wird, muss das entsprechend in den Plugins geändert werden. Funktion Fetch in der user-Klasse kann weiterhin benutzt werden, darf aber nicht statisch aufgerufen werden (erzeugt ab PHP 8 einen fatalen Fehler).

    Ja, weil b1gMail und die Alternativen ebenfalls auf PHP basieren, kann man die Gruppeneinstellungen einlesen. Und wenn man Plugins hat, können diese auch ohne größere Anpassungen laufen. Bei b1gMailServer hingegen müssen Plugins zusätzlich programmiert werden (s. Signaturplugin, CleverMailEncryption). Damit entfällt schonmal der Aufwand beide Sprache können zu müssen.

    nur noch wenige Tage, bis der Support von PHP 7.4 eingestellt wird und zwar an dem 28.11.2022: https://www.php.net/supported-versions.php

    Danach wird es auch keine Sicherheitsupdates mehr geben. Wie geht ihr damit um? Setzt ihr schon auf PHP 8 bei b1gMail? Aktuell wird nur die 7.4.1 damit kompatibel sein. Sie läuft damit, aber ich habe bisher noch nicht geschafft eine finale Version zu veröffentlichen. Ich würde mich freuen, wenn ihr sie testet, damit die (evtl.) auftretende restlichen Fehler behoben werden.

    Gab es da nicht irgendwelche security header die sowas verhindern können, ich verstehe das nicht wie das gehen soll, jemand ne Idee?

    Du meinst CORS-Header? Das bringt nur browserseitig etwas. Wenn etwas serverseitig passiert, dann kann das ignoriert werden.

    Nutzt du außer recaptcha noch weitere Sicherungsmaßnahmen wie z.B. Registrierungs-DNSBL-Filter?

    b1gMail wird aktuell primär auf Deutsch entwickelt und im Nachhinein mit der englischen abgeglichen. Das soll sich später ab 7.5 ändern.

    welche Sprachen sonst noch verfügbar sind: https://github.com/b1gMail-OSS/b1gMail-languages (alles die frei verfügbaren + Fränzösisch von zamana). Sind alle für b1gMail 7.4, wobei die Russische und Rumänische nur ältere sind und die fehlenden Phrasen auf Englisch sind.

    on which user b1gmail is running? how you set the error log file (see configuration file)? It says /var/log/z-push must be owned by nginx/apache or php. You have to look which user is running the http server.

    siehe die Beta-Veröffentlichungen unter https://github.com/b1gMail-OSS/b1gMail/releases. Dass ich die noch Beta nenne, liegt einfach daran, dass sie auch auf PHP 8 laufen soll und halt viele Änderungen vorgenommen werden mussten. Mittlerweile hab ich 7.4.1 mit PHP 8.1 in die Produktivumgebung am laufen, es läuft mittlerweile (aus meiner Sicht) problemlos.

    Was aber noch fehlt, sind Korrekturen mit höheren MySQL-Versionen sowie Test mit memcache.

    Ich denke, ein Webdesigner wird sich dazu besser äußern können. Die Frage für mich ist, ob Widgets auch responsive gestaltet werden können oder nicht.

    Bzgl. Lizenz: Ich denke, wenn wir das zusammen mit b1gMail ausliefern, muss diese mit der GPL kompatibel sein, da patrick keine Ausnahmen dazu definiert hat.

    Wie ein Plugin aufgebaut werden sollte, ist unter https://github.com/b1gMail-OSS/b1…ckler%3APlugins beschrieben. Das werde ich im Lauf der Zeit noch erweitern.

    Einige Änderungen in 7.4.1:

    1. Öffentliche Funktionen sollten mit public beginnen, Private mit private, wenn nur innerhalb der Plugin-Klasse aufgerufen wird. In alten Versionen wurde zweck PHP4-Kompatibilität auf die explizite Bezeichnung verzichtet, d.h. alle Funktionen sind öffentlich.

    2. Plugins sollten in UTF-8 Format gespeichert werden. 7.4.1 wird zwar als letzte Version noch "nicht UTF-8-Installationen" unterstützen, aber der Entwickler muss die Kompatiblität mit solchen Installationen nicht sicherstellen, das muss der Endnutzer manuell machen.

    3. Konstruktoren müssen mit __construct gekennzeichnet sein. In alten PHP-Versionen war der Konstruktorname gleich Klassenname. In PHP 8 wird dies ignoriert und führt dazu, dass die Plugininformationen nicht angezeigt werden.

    4. Statische Aufrufe müssen explizit gekennzeichnet sein. $this-Aufrufe sind in statische Funktionen nicht erlaubt. In PHP 8 erzeugt sonst das aufrufen statische Funktion, die nicht als statisch gekennzeichnet sind, zu Fehlern.

    In Zukunft:

    DB-Änderungen bzgl Tabellen und Felder sollten stets mit b1gMail eigenen Funktionen gemacht werden. Fürs erstellen und modifizieren von Tabellenfelder eignet sich die Funktion SyncDBStruct:

    Beispiel

    Ich hab Postfix testweise im Einsatz, als Empfangsmethode habe ich Postfix Transport Gateway genommen. Funktioniert soweit gut. Man muss halt immer dran denken, die Liste zu aktualisieren, wenn eine neue Domain hinzugekommen ist. Dafür habe ich zuletzt ein Script erstellt, der die Sache automatisieren kann: https://github.com/b1gMail-OSS/b1…ansportlist.php

    Zum Versenden per SMTP mit Postfix gab es mal vom b1gMailServer ein PAM-Plugin, der es erlaubt hatte, via SMTP über Postfix zu senden (damals gab es für b1gMailServer keinen eigenständigen SMTP-Server). Würde aber heute nicht mehr laufen. Eine Alternative wäre das hier: https://github.com/NigelCunningham/pam-MySQL . Man müsste halt es so anpassen, dass es mit dem b1gMail-MD5 salt zurechtkommt, geht über "md5(md5('Klartextpasswort').$userRow['passwort_salt'])"

    Hab den Hinweis von patrick übernommen und es dann verallgemeinert, da ThinkClever die Plugins auch nicht mehr anbietet. Hatte letztes Jahr mal ne Anfrage gestellt, ob sie es nicht OpenSource machen können, da kam wie erwartet leider keine Antwort.

    Wenn CleverBranding und CleverCron auch mit b1gMail 7.4 funktioniert hat, wird es wahrscheinlich auch mit 7.4.1 funktionieren, testen kann ich es nicht, da ich diese Plugins nicht habe.

    Sollte eines der Plugins die Funktion BMUser::Fetch() nutzen, muss dies spätestens ab PHP 8 zu BMUser::staticFetch() angepasst werden. Das gleiche gilt auch, wenn noch veraltete mysql-Funktionen genutzt werden, die müssen dann nach mysqli angepasst werden.