Beiträge von Sebijk

    ManDal

    Da ich nicht weiß, wo man Fehler melden kann, melde ich es einfachshalber hier:

    PHP message: PHP Warning: Undefined array key "plugin" in [path]/plugins/wetter.widget.php on line 329

    Tretet ab PHP 8 auf, da muss vorher ein Check rein, ob der Array Key Plugin existiert, geht bsp. mit array_key_exists.

    EDIT: Gerade selber gemacht:

    aus

    PHP
    if ($_REQUEST['plugin'] == 'WetterWidget') {

    wird

    PHP
    if (isset($_REQUEST['plugin']) && $_REQUEST['plugin'] == 'WetterWidget') {

    Ein Wunsch, den ich etwas länger hatte und in Verbindung mit Zweifaktorauthentifizierung sehr wichtig wird: Separate Passwörter für IMAP, POP3 und SMTP festlegen. Denn diese Dienste kann man schlecht mit Zweifaktor schützen, es sei denn man gibt bei jedem Abruf ein neues Passwort ein, was dann aber umständlich wird.

    Wie ich es mir vorstelle:

    1. Die Dienste sollen standardmäßig deaktiviert sein
    2. Der Nutzer selbst kann dann bestimmen, welche Dienste aktiviert werden sollen
    3. b1gMail erzeugt dann ein Passwort/Token für eines der Dienste
    4. Beim Token soll eine maximale Gültigkeit festgelegt werden können
    5. Ich stelle mir das Token-System wie beim GitHub vor, wo der Nutzer auch mehrere anlegen kann und auch die entsprechende Dienste auswählen kann. So kann im Fall von Verlust der Token schnell ausfindig gemacht werden und gesperrt werden
    6. Login mit b1gMail-Passwortauthentifizierung (also das bisherige Verhalten) soll nur noch mit Whitelist für bestimmte IP-Adressen möglich sein, z.B. für lokal. Das würde weiterhin z.B. den Betrieb eines alternativen Webmails ermöglichen. Hier reicht es, wenn dies in der b1gmailserver.cfg konfigurierbar ist.

    Moin,

    wenn du mir die technischen Details zur Alias-Login-Funktion zusammenfassen könntest (oder den Commit schicken kannst, in dem es auf b1gMail-Seite implementiert wird), kann ich mal schauen, ob dafür b1gMailServer-Änderungen nötig sind, und ob ich diese ggf. einbauen kann.

    Hallo patrick,

    es müsste nur das Feld login in der Tabelle bm60_aliase abgefragt werden und nur wenn yes steht, soll Alias-Login gestattet sein, siehe auch https://github.com/b1gMail-OSS/b1…51306320ace11c4

    Gestern hat patrick nun endlich den b1gMailServer veröffentlicht: https://github.com/b1gMail/b1gMailServer

    Gründe warum es länger gedauert hat, war die Aufbereitung des Codes für interessierte Entwickler und der Tatsache, dass die alte kommerzielle Version unter einer uralt CentOS-Version kompiliert wurde. Dies hat man insoweit nun geändert, dass eine Docker-Umgebung mit Ubuntu 16.04 zum Einsatz kommt, wo der b1gMailServer kompiliert wird.

    Ich werde später eine Version veröffentlicht, die die neue Alias-Login erlauben/verbieten-Funktion in der b1gMail-OSS Version 7.4.1 berücksichtigen wird.

    Jetzt stellt sich die Frage, wer würde denn b1gMailServer weiterführen wollen?

    Danke Sebijk für die Beispiele. Kann ich davon ausgehen, dass die Anpassungen (bzw. auch die OSS-Version) auch mit PHP7.4 funktionieren?

    Ja, hab ja geschrieben, dass b1gMail 7.4.1 mit PHP ab 5.4 kompatibel sein soll (b1gMail 7.4.0 erforderte mind. 5.3).

    Ab b1gMail 7.5 werde ich eine höhere ansetzen, die aktuell unterstützt wird (also mind. 8.0).

    Hallo,

    die PHP8-Änderungen sind umfangreich, am einfachsten ist es, die Dateien abzugleichen. Man kann auch im Commit-Historie schauen (am besten alle mit PHP 8 Erwähnung): https://github.com/b1gMail-OSS/b1gMail/commits/main , aber sie ist nicht vollständig, da die alte Historie von b1gMail nicht veröffentlicht werden kann.

    Wo hingeschaut werden muss: Die Klassen. Es wurde ein static (also static function) vorangestellt für alle Funktion die statisch aufgerufen werden. Es war schon in PHP 7 ein Fehler, aber ab 8 führt es zum fatalen Fehler. memcached funktioniert ebenfalls nicht, da sollte vorher auf dem b1gMail Cache-Manager umsteigen.

    Ebenso müssen alle Templates angepasst werden, siehe auch RE: Vorschau b1gMail 7.4.1.

    mal als Beispiel: https://github.com/b1gMail-OSS/b1…/user.class.php

    aus function AddressAvailable($address) wird static function AddressAvailable($address) , weil sie in der index.php so aufgerufen wird: BMUser::AddressAvailable($address)

    Wie wurden die Konten übernommen? Über das Webinterface oder via SMTP / IMAP?

    Sofern die Benutzer eine Alternativ E-Mail hinterlegt haben oder Kontaktdaten wie Mobilrufnummer oder Anschrift kann man auf diesem Wege dem das Passwort mitteilen. Ansonsten wird es schwer...

    Sollte es über SMTP/IMAP gehen, dann wäre fail2ban empfehlenswert (falls du es nicht bereits installiert hast), eine Anleitung hat hchristo unter https://board.b1gmail.com/threads/anleit…-fail2ban.16369 geschrieben. So lassen sich die Loginversuche begrenzen.

    Ich wollte nun das Plugin von dotaachen installieren aber das geht irgendwie nicht, hängt sich immer so und lässt sich auch nicht aktivieren. Was macht ihre um die Benutzer zu informieren, dass diese auch mal ihr Passwort ändern sollten? :/

    Wie heißt denn das Plugin?

    Aktuelle Version: b1gMail 7.4.1-beta3 PL 3 (oder im GitHub aus dem Main-Bereich ziehen).

    mit dem letzten Commit wurden viele undefined index und variable beseitigt: https://github.com/b1gMail-OSS/b1…fe8491843064ebe

    Grund: In PHP 8 wurden die Meldungen die bisher im NOTICE-Level waren zu WARNING geändert.

    Bitte testet fleißig und hilft mit die restlichen Fehler zu entdecken. In Bezug auf undefined index oder undefined variable können auch nichtprogrammierer helfen. Hier muss hauptsächlich wenn dieser Fehler auftretet mit einer If isset oder empty-Abfrage abgefangen werden.

    Unterschied zwischen isset und empty

    isset: Prüft ob die Variable oder key im Array existiert

    empty: Prüft ob die Variable oder key im Array existiert und wenn ja ob Inhalt leer ist (Zahl 0 wird als leer interpretiert).

    Also ladet euch die letzte Kopie von Github herunter, testet, fixt und reicht die Änderungen entweder per GitHub-Fork ein oder postet die simpel hier (dann bitte als komplette Datei, das macht die Sache einfacher).

    Hinweis: Solltet ihr PHP vor 8.2 mit Windows einsetzen, beachtet bitte auch RE: Xampp (Windows) Update-Problem 7.4 > 7.4.1 Beta3. Eine entsprechende Änderung für zukünftige Versionen ist in Arbeit.

    Der Fehler ist in PHP 8.2 gefixt. Hab mal gefragt, ob das zu 8.1 rückportiert wird.

    Ansonsten einfach die o.g. database.struct.php herunterladen. Im Grunde wurden dort folgende Sachen gelöscht.

    PHP
    '
        . '

    Zudem muss in $databaseStructure der gesamte String in einer Zeile sein.

    Das bezieht sich im übrigen auch auf das b1gmailserver, PremiumAccount,Signatur, PluginUpdates, News, AccountMirror sowie das Fax-Plugin. Wenn da derselbe Fehler kommt, muss dies an den Dateien entsprechend angepasst werden.

    Eine Anpassung ist in Arbeit, aktuell überlege ich wie ich es am besten gestalte. Meine Tendenz geht rüber zum Verzicht von base64 zwecks besserer Entwicklungsübersicht sowie zum Auslagen der SQL-Struktur in eine separate Datei, die wiederum mit Hashes überprüft wird, ob sie sich (versehentlich) geändert hat.

    So, hab das mal mit dem offiziellen PHP Windows Version von php.net getestet: Selbe Fehler. Ist also ein PHP Bug. Habs unter https://github.com/php/php-src/issues/10002 gemeldet.

    Hab ne Antwort bekommen.

    Zitat

    I don't think so, since the AST representation changes, what could cause BC issues (from the commit message: "Extensions such as nikic/php-ast which expose the internal php ast would see literals be flattened, though.)


    D.h. das vor PHP 8.2 wird das nicht behoben. In den nächsten Updates werde ich entsprechend die Dateien anpassen.

    Die alternative mit tools/db_sync.php funktioniert auch nicht, auch wenn man zuerst die Pfade in den Dateien im Tools-Ordner anpasst, denn meine Hauptinstallation liegt nicht im /src-Ordner. Nach Anpassung der Pfade und nnach Aufruf der db_snyc.php kommt wieder eine Fehlermeldung.

    Erst mal sorry für die Ausführungen..

    Erstmal vielen Dank fürs Testen. Ich hab das reproduziert und anscheinend ist entweder in der Windows-Version oder in XAMPP ein Bug drin, so dass PHP abstürzt und es zu dieser Meldung komnmt.

    Bitte ersetze mal die database.struct.php mit dieser hier in serverlib. Kommst du damit weiter?