PR: #27
PHP-Prozesse wiederverwenden (inbound_reuse_process=1)
Ab PHP 8.4 landen oft Deprecation-Meldungen auf stdout und stören das Pipe-Protokoll (RCPT/DATA). Der BMS hat sich dann in fgets festgefahren und den PHP-Prozess abgeschossen. Das ist auf BMS-Seite gehärtet (Timeouts, Rauschen ignorieren, kaputte Worker wegwerfen). Das Protokoll selbst bleibt gleich, PHP 7.4/8.2 sollen weiterlaufen. Die Deprecations in pipe.php/serverlib sind damit nicht weg, der BMS hängt sich nur nicht mehr daran auf.
IMAP-Umlaute (Apple Mail)
Ordnernamen gehen jetzt nach RFC 3501 als modified UTF-7 raus/rein. Speichern weiter passend zu SET NAMES latin1, auch wenn bm60_folders.titel utf8mb4 ist. Webmail-Ordner waren nie das Problem; nach dem Update in Apple Mail einmal die Ordnerliste neu laden.
Zweiter Mail-Server
Nur /serverlib oder nur /plugins zu mounten reicht nicht. Der BMS braucht den b1gMail-Webroot (interface/pipe.php, daneben serverlib/ und plugins/). In der b1gmailserver.cfg kann man das jetzt lokal überschreiben, ohne dass die DB-Werte für alles andere verloren gehen:
selffolder = /mnt/b1gmail/
datafolder = /mnt/b1gmail-data/
php_path = /usr/bin/php
Den ganzen Baum mounten, nicht serverlib allein. Gehashte Beispiele stehen nach Install/Update in der cfg.
Wichtig: So ein Split-Setup (Web und Mail getrennt) habe ich hier aktuell nicht zum Testen. Das ist also nur der Code-Weg, keine Bestätigung aus dem Betrieb. Wer das so fährt: bitte prüfen, ob pipe.php auf dem Mail-Host erreichbar ist und Zustellung/IMAP damit klappt. Feedback sehr willkommen.
Zusätzlich: wenn logfile gesetzt ist, kann man mit logrotate=1 die Rotation vom BMS anlegen lassen (bei jedem Start, Pfad aus der cfg). Bestehende logfile=-Zeilen werden nicht nochmal angehängt.
Kompatibel mit offiziellem b1gMail 7.4. Tester zu Keep-Alive (PHP 8.4), Apple Mail und vor allem Split-Server wären hilfreich.