| config | ram optimization | |
| scripts | ram optimization | |
| .gitignore | first | |
| plan.md | first | |
| README.md | ram optimization | |
| todo.md | first | |
DavMail Bridge (Debian)
Ziel: Nach git clone mit wenig manueller Arbeit einen DavMail-IMAP-Bridge-Server auf Debian aufsetzen, der unverschlüsseltes IMAP (ohne TLS) bereitstellt.
1) Konfiguration setzen
cp config/davmail.env.example config/davmail.env
Dann config/davmail.env anpassen:
DAVMAIL_URL: OWA/EWS URL (z. B.https://mail.example.com/owa/)DAVMAIL_MODE: z. B.EWS,Auto,O365ModernDAVMAIL_BIND_ADDRESS:127.0.0.1nur lokal (empfohlen),0.0.0.0nur bei bewusstem Remote-ZugriffDAVMAIL_IMAP_PORT: z. B.1143DAVMAIL_ALLOW_REMOTE:true/falseDAVMAIL_PUBLIC_HOSTNAME: Hostname/IP, die Clients nutzenDAVMAIL_JAVA_OPTS: JVM-Heap/GC für DavMail, z. B.-Xms1g -Xmx4g -XX:+UseG1GC
Hinweis: Wenn DAVMAIL_ALLOW_REMOTE=true, solltest du Firewall-Regeln passend setzen und Plain-IMAP nur in trusted Netzen verwenden.
Für größere Migrationen (z. B. 30 GB Mailbox) empfiehlt sich explizites Heap-Tuning:
- Startwert:
DAVMAIL_JAVA_OPTS="-Xms1g -Xmx4g -XX:+UseG1GC -XX:+UseStringDeduplication" - Bei mehreren parallelen Läufen ggf. erhöhen (z. B.
-Xmx6g), aber nur wenn genug System-RAM frei ist. - Faustregel:
Xmxnicht höher als ca. 50-60% des verfügbaren RAM setzen, damit OS/File-Cache und imapsync stabil bleiben.
2) Setup ausführen
chmod +x scripts/*.sh
sudo ./scripts/setup_davmail.sh ./config/davmail.env
Das Skript erledigt:
- Installation von
davmail-server(oderdavmail) + Java Runtime - Erzeugung von
/etc/davmail/davmail.properties - Setzen von JVM-Parametern per systemd-Override (
JAVA_OPTS) - Aktivierung/Start von
davmail-server.service - Ausgabe von Status und Listener-Port
Wenn kein DavMail-Paket in deinen APT-Quellen gefunden wird, bricht das Skript mit einem klaren Hinweis ab. Dann zuerst DavMail-Repo oder passendes .deb installieren.
3) IMAP testen
Optional Netcat installieren:
sudo ./scripts/install_netcat.sh
Dann Test:
./scripts/check_imap.sh 127.0.0.1 1143
Bei Remote-Zugriff:
./scripts/check_imap.sh <SERVER-IP-ODER-HOSTNAME> 1143
Betrieb / Logs
sudo systemctl status davmail-server.service --no-pager || sudo systemctl status davmail.service --no-pager
sudo journalctl -u davmail-server.service -n 100 --no-pager || sudo journalctl -u davmail.service -n 100 --no-pager
sudo tail -n 100 /var/log/davmail/davmail.log
Falls Unit davmail.service could not be found erscheint:
- Das Paket installiert oft
davmail-server.service(nichtdavmail.service). - Prüfen mit
systemctl list-unit-files | grep -E '^davmail(-server)?\\.service'. - Manueller Start immer mit Config-Datei, damit
davmail.urlsicher aus/etc/davmail/davmail.propertieskommt:sudo davmail-server /etc/davmail/davmail.properties(alternativ:sudo davmail -server /etc/davmail/davmail.properties)
Beispiel für imapsync gegen DavMail (Quelle)
Passwörter nicht als Klartext im CLI übergeben. Nutze --passfile1/--passfile2:
chmod 600 /root/.exchange_pass /root/.target_pass
imapsync \
--host1 <DAVMAIL-HOST> --port1 1143 --user1 "<EXCHANGE-USER>" --passfile1 /root/.exchange_pass \
--host2 <ZIEL-IMAP-HOST> --ssl2 --user2 "<ZIEL-USER>" --passfile2 /root/.target_pass \
--dry --justfolders
Danach ohne --dry --justfolders produktiv starten.