1
0
Fork
You've already forked davmail-bridge
0
No description
  • Shell 100%
Find a file
2026年02月25日 10:49:57 +01:00
config ram optimization 2026年02月25日 10:49:57 +01:00
scripts ram optimization 2026年02月25日 10:49:57 +01:00
.gitignore first 2026年02月24日 19:58:44 +01:00
plan.md first 2026年02月24日 19:58:44 +01:00
README.md ram optimization 2026年02月25日 10:49:57 +01:00
todo.md first 2026年02月24日 19:58:44 +01:00

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, O365Modern
  • DAVMAIL_BIND_ADDRESS: 127.0.0.1 nur lokal (empfohlen), 0.0.0.0 nur bei bewusstem Remote-Zugriff
  • DAVMAIL_IMAP_PORT: z. B. 1143
  • DAVMAIL_ALLOW_REMOTE: true/false
  • DAVMAIL_PUBLIC_HOSTNAME: Hostname/IP, die Clients nutzen
  • DAVMAIL_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: Xmx nicht 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 (oder davmail) + 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 (nicht davmail.service).
  • Prüfen mit systemctl list-unit-files | grep -E '^davmail(-server)?\\.service'.
  • Manueller Start immer mit Config-Datei, damit davmail.url sicher aus /etc/davmail/davmail.properties kommt: 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.