Pro vývoj webových aplikací na Win11 používám IDE Netbeans a jako server používám virtualizované Ubuntu přes VirtualBox, kde mi běží webový server Apache s modulem fpm a databáze MariaDB a Postgres. Spojení Apache s fpm mi dovoluje zkoušet různé verze PHP jednoduchou změnou konfigurace Apache. Pro odesílání emailů mám nakonfigurován poštovní program Exim.
Po poslední aktualizaci VirtualBoxu ( 7.1.4 ) a Ubuntu ( 22.04 ) přestalo fungovat odesílání emailů Eximem do sdílené složky mezi VirtualBoxem a Windows. Moje konfigurace Eximu zde.
Původní konfigurace
Jakýkoliv email odeslaný z Ubuntu byl zpracován Eximem a byl uložen ve sdílené složce mezi VirtualBoxem a Windows ve formátu *eml a byl tak čitelný i z Windows, aniž by byl fyzicky odeslán do emailových schránek. Po aktualizacích přestalo toto sdílení fungovat. Při kontrole Eximu a jeho log souborů jsem zjistil, že Exim není schopen zápisů souborů *.eml do sdílené složky, i když ve skupině vboxsf byli přidání všichni uživatelé, pod kterými dané služby běží.
Upravená konfigurace
Toto omezení jsem nakonec vyřešil velmi jednoduše pomocí rsync a cronu. V cronu jsem vytvořil novou úlohu jako uživatel root zadáním
sudo su
crontab -e
Do souboru jsem zadal následující dva řádky, aby se rsync spouštěl každých 30 sekund.
* * * * * rsync -au /emails /media/sf_Emails
* * * * * sleep 30; rsync -au /emails /media/sf_Emails
Výsledný soubor jsem uložil a nyní při jakémkoliv odeslání emailu z Ubuntu se vytvoří soubor *.eml ve složce /emails a ten je synchronizován se složkou /media/sf_Email, která byla vytvořená VirtualBoxem.