# email_autodiscover - Dynamisches Autodiscover/Autoconfig Snippet # Importiert im Caddyfile via: import email_autodiscover # # Funktioniert mit JEDER Domain automatisch, solange der Caddy-Block # auf autodiscover. oder autoconfig. hört. # # Hostnames werden dynamisch abgeleitet: # autodiscover.cielectrical.com → imap.cielectrical.com / smtp.cielectrical.com # autoconfig.bayarea-cc.com → imap.bayarea-cc.com / smtp.bayarea-cc.com # # {labels.2}.{labels.1} extrahiert die Basisdomain aus dem Host: # autodiscover.cielectrical.com → labels: [com=0, cielectrical=1, autodiscover=2] # → {labels.1}.{labels.0} = cielectrical.com (email_settings) { # 1. Outlook Autodiscover (XML) route /autodiscover/autodiscover.xml { header Content-Type "application/xml" respond ` email settings IMAP imap.{labels.1}.{labels.0} 993 on {header.X-Anchormailbox} off on on POP3 pop.{labels.1}.{labels.0} 995 on {header.X-Anchormailbox} off on on SMTP smtp.{labels.1}.{labels.0} 465 on {header.X-Anchormailbox} off on on ` 200 } # 2. Modern Outlook (JSON) - Redirect zum XML Endpoint route /autodiscover/autodiscover.json { header Content-Type "application/json" respond `{ "Protocol": "AutodiscoverV1", "Url": "https://autodiscover.{labels.1}.{labels.0}/autodiscover/autodiscover.xml" }` 200 } # 3. Thunderbird Autoconfig route /mail/config-v1.1.xml { header Content-Type "application/xml" respond ` {labels.1}.{labels.0} Mail {labels.1}.{labels.0} imap.{labels.1}.{labels.0} 993 SSL password-cleartext %EMAILADDRESS% pop.{labels.1}.{labels.0} 995 SSL password-cleartext %EMAILADDRESS% smtp.{labels.1}.{labels.0} 465 SSL password-cleartext %EMAILADDRESS% ` 200 } # 4. Apple MobileConfig route /apple { templates { mime "application/x-apple-aspen-config" } header Content-Type "application/x-apple-aspen-config; charset=utf-8" root * /etc/caddy rewrite * /email.mobileconfig.tpl file_server } }