Ich selbst teste nun auch b1gMail 7.5 intern.
Was mir noch aufgefallen.
Bei der Newsletter-Funktion im ACP werden keine Empfänger übermittelt, es ist stets 0. Möglicherweise ein JavaScript-Fehler.
Ich selbst teste nun auch b1gMail 7.5 intern.
Was mir noch aufgefallen.
Bei der Newsletter-Funktion im ACP werden keine Empfänger übermittelt, es ist stets 0. Möglicherweise ein JavaScript-Fehler.
Ja, einfach einen PR-Request machen.
Forks die das implementiert haben, nein.
Unter https://github.com/b1gMail/b1gMailServer kannst du nachschauen, welche Pull-Request es gibt. Dann gibt es noch meinen Fork, der all diese Pull-Request implementiert: https://github.com/b1gMail-OSS/b1gMailServer
Ansonsten patrick hatte mal unter milter version ändern nachgefragt, wo man die Spezifikation für die neuere Milter-Version bekommt.
b1gMail 7.4.2 RC 4 enthält einen wichtige Sicherheitsmaßnahme. Bei der OSS-Version wird der Toolbox-Generator nicht genutzt, da die Konstante TOOLBOX_SERVER nicht gesetzt ist. Unabhängig davon war die interface/clientapi.php immer zugänglich und ermöglicht eine Brute-Force Attacke in unlimitierte Anzahl. Ich habe das ein wenig entschärft, so dass auch die fehlgeschlagene Logins wie beim Webmailoberfläche notiert werden und ggf. gesperrt werden. Außerdem ist clientapi.php nun ohne Funktion, wenn TOOLBOX_SERVER nicht gesetzt ist, da es aktuell nur von der Toolbox genutzt wird. Je nachdem wie sich die Toolbox entwickeln wird, in Zukunft sind weitere Maßnahmen angedacht.
Nutzer älter OSS-Versionen wird dringend geraten zumindest die aktuelle clientapi.php herunterzuladen oder am besten zu löschen.
Character sets
Before converting, be sure to back up the database and files. No liability for data loss!
ISO character set
b1gMail 7.4.2 will not support the old ISO character set or latin1 anymore. You must convert to utf8 first.
If you are using a version older than 7.4.0:
Saving emails to database causes character set errors, so the file system variant is the safest. Therefore, before conversion, log into the admin area, go to "Settings" " "Mail" and make sure that mail storage is set to "File system". Even if this was already the case, then go to "Tools" " "Optimization" " "File System" and run the "Mail Storage" function (Database -> Files). This is necessary to make sure that there are no more emails in the database, since this storage method has been removed as of version 7.4.0-Beta1.
When updating: After running setup/update.php do not delete the "setup" folder yet but run setup/utf8convert.php first. Allow some time for the conversion.
UTF8MB4
New installations always use UTF8MB4, because the old UTF-8 implementation of MySQL cannot store 4 byte character sets. When updating from an older b1gMail version: run setup/utf8mb4convert.php. You need a little time for the conversion.
b1gMail 7.4.2 Release Candidate 4 is now available for download at https://github.com/b1gMail-OSS/b1gMail/releases! With every pre-release: use with own caution! If there is no any faulty reports, we will release the final release.
Before updating, please make a backup of the database and the b1gMail folder including the data folder!
Changes 7.4.2rc3->7.4.2-rc4
Known issues (since 7.4.1):
New installation
Download complete package. In serverlib rename config.default.inc.php to config.inc.php and version.default.inc.php to version.inc.php.
Update from b1gMail 7.4.0 and 7.4.1
upload the files. After call /setup/update.php. Alternatively delete in serverlib the file version.inc.php and rename version.default.inc.php to version.inc.php and call tools/db_sync.php. In both cases the setup folder must be deleted afterwards. If you update from b1gMail 7.4.0 or earlier, make sure you have a backup of serverlib/init.inc.php.
Notes about former commercial version: Please read also b1gMail 7.4.1 released
Notes
Limitations compared with the old commercial version
Bzgl. Umlautprobleme: Ich kann das bei Thunderbird bestätigen, aber das kommt nicht immer vor. Meist konnte ich es reproduzieren, wenn Thunderbird so eingestellt ist, dass es mit Linux zusammen startet, dann hatten Ordner Umlautfehler gehabt. Schließt man dann Thunderbird vollständig und startet es neu, dann geht es wieder. Genauer habe ich es mir jedoch nicht angeschaut.
Ich bin ohnehin dafür den latin1 bzw den ISO-Support zu streichen, da es einfach nur einen Mehraufwand bedeutet und alte b1gMail-Installation, die nicht in UTF-8 konvertiert worden sind, eben noch aus der kommerziellen Zeit stammen. Irgendwo muss man einen Schlussstrich ziehen. D.h. in Zukunft sollte mit eine native UTF-8-Datenbankanbindung gearbeitet werden.
Zeit für eine Aktualisierung: ManDal hat bereits sehr viel umgesetzt in 7.5:
Umgesetzt (lt. der geäußerten Wünsche im Thema):
Das Thema App-Passwörter wollte ich auch vorantreiben, aber bisher bin ich aus zeitlichen Gründen nicht weiter als die Design-Überlegung weitergekommen: Tokenverwaltung
Umso mehr freut es mich, dass du das jetzt voranbringst :-).
Alles anzeigenDa mir persönlich die Login-Sicherheit und 2 Faktor wichtig sind, habe ich mir überlegt, wie man das global für alle Dienste gestalten kann.
Daraus entwickle ich mir die Idee einer Tokenverwaltung.
Die Tabelle bm60_users_token sieht dabei so aus
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Dort soll man die Tokens und Secrets ablegen können. type steht für die Art des Dienstes z.B. pop3,imap,smtp,caldav,webdav,zpush usw...
Einstellung in b1gMailServer.
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen. Da man nicht alle Dienste per 2FA absichern kann, ist eine Absicherung pro Dienst hilfreich.
Wow, vielen Dank, dass du dir so viel Zeit dafür nimmst. Ich freu mich schon richtig, dass man hier einen großen Schritt weiterkommt.
Alles anzeigen########################################################################
Mit deinen Einstellungen (gc_probability = 1 und gc_divisor = 1000) hat jeder 1.000ste Seitenaufruf (0,1 % Chance) das Recht, den Ordner komplett nach abgelaufenen Sessions zu durchsuchen und diese zu löschen.
Wie viele Dateien letztendlich im Ordner liegen bleiben, bestimmen zwei Faktoren:
1. Die Lebensdauer der Sessions (session.gc_maxlifetime)
Standardmäßig löscht PHP nur Sessions, die älter als 1440 Sekunden (24 Minuten) sind.
- Alle Dateien von Benutzern, die innerhalb der letzten 24 Minuten auf deiner Website waren, bleiben garantiert liegen.
- Nur die Dateien von Benutzern, die länger als 24 Minuten inaktiv sind, werden beim nächsten GC-Durchlauf gelöscht.
2. Dein Besucheraufkommen (Traffic)
- Wenig Traffic: Wenn deine Website nur alle paar Stunden aufgerufen wird, triggert der Garbage Collector selten. Es kann sein, dass der Ordner zeitweise auf ein paar tausend Dateien anwächst, bevor der nächste "Putzdienst" anspringt.
- Hoher Traffic: Bei konstant vielen Besuchern wird die 0,1 %-Chance sehr oft getroffen. Der Ordner wird quasi durchgehend sauber gehalten. Es liegen dann fast nur noch die Sessions der aktuell aktiven Nutzer im Ordner.
Fazit
Wenn deine Website nicht gerade zehntausende aktive Nutzer gleichzeitig hat, werden weit weniger als 35.000 Dateien im Ordner liegen bleiben. Bei normalen Websites sinkt die Zahl meist auf ein paar Hundert bis wenige Tausend aktive Sessions.
Möchtest du den Befehl wissen, mit dem du die genaue Anzahl der aktuell angesammelten Session-Dateien im Ordner auslesen kannst, um den Vorher-Nachher-Vergleich zu sehen?
Bitte den Text eindeutig als KI-generiert bezeichnen.
ich hänge mal eine binary bereit, wenn jemand die Unterstützung von b1gMail 7.5 auf b1gMailServer testen möchte. Achtung: diese Version nicht mit früheren b1gMail-Versionen nutzen, das könnte evtl. Passwörter zerstören. Diese Version enthält auch eine neuere Version von OpenSSL 3.5.
Das Problem mit den Sessions kenne ich. Ich hatte da ein Skript am laufen, dass diese Einträge in dem Session-Ordner monatlich löscht. Mittlerweile hab ich den Ordner nur noch als tmpfs eingebunden, so dass es spätestens mit dem Restart leer ist.
Bzgl. IPv6 hab mal im alten Forum geschaut: https://board.b1gmail.com/threads/b1gmail-server-ipv6.15813/
Also bekannt ist, dass BMS mit IPv6 Mails empfangen kann, aber die Auslieferung ausschließlich mit IPv4 erfolgt. Um es ein wenig einzugrenzen: Geht es bei den E-Mails in der Warteschlange um eingehende oder ausgehender oder um beides?
Nach dem Update von PHP 7.4 auf PHP 8.4.24 verbleiben täglich mehr Mails länger in der Warteschleife als vorher. An der prinzipiellen Serverkonfiguration IPv4/IPv6 hat sich nichts geändert, es treten aber im Gegensatz zu vorher vermehrt "Timeout while connecting socket"-Fehler auf. Vor der Umstellung befanden sich meist ca. 10-20 Mails in ruhigen Zeiten in der Queue, aktuell sind es permanent 130-180. Mal von den üblichen Verdächtigen falsch geschriebenen Adressen oder tatsächlich nicht erreichbaren Postfächern abgesehen, bleibt trotzdem eine zu hohe Zahl übrig.
Gibt es hierzu PHP-Logs? Hört sich nach einem Fehler in der pipe.php an.
Was mir noch aufgefallen ist beim kurzen Test: Die Passwörter beim Adminlogin dürfen nicht konvertiert werden, wenn die Tabelle nicht angepasst worden ist (z.B durch fehlerhaftes Upgrade), sonst wird ein Teil abgekürzt und Login wird unmöglich.
In Zusammenhang mit MySQL 8.x gibt es noch einen Bug, den ich bisher aus Zeitgründen nicht gelöst habe: https://github.com/b1gMail-OSS/b1gMail/issues/2
Übertrag aus dem alten b1gMail.com-Forum:
Alles anzeigenHab trotzdem ein paar Anpassungen vorgenommen, die ich hier teilen möchte:
- Klasse PHPGangsta_GoogleAuthenticator aktualisiert
- Fehlende DB-Präfixe ergänzt (alte Version muss vorher gelöscht werden), sowie "bm60_" durch {pre} ersetzt (das holt automatisch das gesetzte DB-Präfix)
- deref.php und noreferrer hinzugefügt bei Verlinkung zu Google Authenticator App
- Begriff "Google" durch "OTP" ersetzt
- Nutzt einen eigenen QR-Code-Generator (Zeile 438). Im jetzigen Plugin hat es auf Google für QR-Code Generierung verlinkt. Bei mir hat die QR-Code-Anzeige übrigens nicht funktioniert. Durch das Privacy Shield Urteil vom Juli wäre diese Verlinkung illegal bzw. müsste es in die Datenschutzerklärung aufgenommen werden.
Todo:
- Benutzerdefinierte QR-Code URL im ACP festlegen
QR-Code Generator auf eigenen Server (benötigt PHP 7.4):
Ordner qrcode im b1gMail Root anlegen. index.php mit folgenden Inhalt erzeugen:
PHP Alles anzeigen<?php include('../serverlib/init.inc.php'); // Check ob eingeloggt (aus deref.php), da keine sid uebergeben wird if($bm_prefs['cookie_lock'] == 'yes') { $ok = false; foreach($_COOKIE as $key=>$val) if(substr($key, 0, strlen('sessionSecret_')) == 'sessionSecret_') $ok = true; if(!$ok) die('Access denied'); } use chillerlan\QRCode\{QRCode, QROptions}; require_once './vendor/autoload.php'; $qrcode = filter_input(INPUT_GET, 'data', FILTER_SANITIZE_STRING); $options = new QROptions([ 'version' => 7, 'outputType' => QRCode::OUTPUT_IMAGE_PNG, 'eccLevel' => QRCode::ECC_L, 'scale' => 5, 'imageBase64' => false ]); header('Content-type: image/png'); //quick and simple: if(!empty($qrcode)) echo (new QRCode($options))->render($qrcode); ?>Anschließend im qrcode-Verzeichnis folgendes ausführen: (vorher feststellen, ob Composer bereits installiert, wenn nicht vorher herunterladen)
composer require chillerlan/php-authenticator
Wenn dieses Kommando als root ausgeführt, muss man danach chown user:gruppe mit dem entsprechenden Nutzer und Gruppe ausführen.
Läuft die 7.5 auch noch mit unterordner (z.B. domain.de/b1gmail) oder nur auf dem Rootverzeichnis der Subdomain/Hauptdomain? Das kriege ich aktuell in der Konstellation nicht zu laufen.
ich benutze es nicht, da ich Linux nutze. Würde zwar auch mit Wine laufen, aber benötigen tu ich das nicht. Die Webdisk nutze ich nicht. Andere Funktionen wie Fax-Treiber wären evtl. interessant, sind aber auch eher Spezialfälle falls man überhaupt noch Faxe senden muss. Meistens tut das auch die integrierte Fax-Funktion in der Fritzbox oder man nutzt die Weboberfläche des Fax-Plugins.