fix
This commit is contained in:
parent
4caa51991f
commit
a11ed8c526
|
|
@ -17,7 +17,7 @@ services:
|
|||
- $PWD/Caddyfile:/etc/caddy/Caddyfile
|
||||
- $PWD/mail_certs:/etc/caddy/mail_certs
|
||||
# email_autodiscover entfernt - Snippet ist jetzt in mail_certs eingebettet
|
||||
- $PWD/email.mobileconfig.html:/etc/caddy/email.mobileconfig.html
|
||||
# email.mobileconfig.html entfernt - Inhalt ist jetzt inline in mail_certs
|
||||
- $PWD/email-setup:/var/www/email-setup
|
||||
- caddy_data:/data
|
||||
- caddy_config:/config
|
||||
|
|
|
|||
|
|
@ -1,82 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
{{/* ───────────────────────────────────────────────────
|
||||
Apple MobileConfig Template (Caddy templates + Sprig)
|
||||
|
||||
Aufruf: https://autodiscover.<domain>/apple?email=user@domain.com
|
||||
|
||||
Domain-Extraktion aus der E-Mail-Adresse:
|
||||
email = sam@cielectrical.com
|
||||
splitList "@" → ["sam", "cielectrical.com"]
|
||||
last → cielectrical.com
|
||||
→ imap.cielectrical.com / smtp.cielectrical.com
|
||||
─────────────────────────────────────────────────── */}}
|
||||
{{- $email := .Req.URL.Query.Get "email" -}}
|
||||
{{- $domain := last (splitList "@" $email) -}}
|
||||
<dict>
|
||||
<key>PayloadContent</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>EmailAccountDescription</key>
|
||||
<string>{{$email}}</string>
|
||||
<key>EmailAccountName</key>
|
||||
<string>{{$email}}</string>
|
||||
<key>EmailAccountType</key>
|
||||
<string>EmailTypeIMAP</string>
|
||||
<key>EmailAddress</key>
|
||||
<string>{{$email}}</string>
|
||||
<key>IncomingMailServerAuthentication</key>
|
||||
<string>EmailAuthPassword</string>
|
||||
<key>IncomingMailServerHostName</key>
|
||||
<string>imap.{{$domain}}</string>
|
||||
<key>IncomingMailServerPortNumber</key>
|
||||
<integer>993</integer>
|
||||
<key>IncomingMailServerUseSSL</key>
|
||||
<true/>
|
||||
<key>IncomingMailServerUsername</key>
|
||||
<string>{{$email}}</string>
|
||||
<key>OutgoingMailServerAuthentication</key>
|
||||
<string>EmailAuthPassword</string>
|
||||
<key>OutgoingMailServerHostName</key>
|
||||
<string>smtp.{{$domain}}</string>
|
||||
<key>OutgoingMailServerPortNumber</key>
|
||||
<integer>465</integer>
|
||||
<key>OutgoingMailServerUseSSL</key>
|
||||
<true/>
|
||||
<key>OutgoingMailServerUsername</key>
|
||||
<string>{{$email}}</string>
|
||||
<key>OutgoingPasswordRequired</key>
|
||||
<true/>
|
||||
<key>PayloadDescription</key>
|
||||
<string>E-Mail Konfiguration</string>
|
||||
<key>PayloadDisplayName</key>
|
||||
<string>{{$domain}} E-Mail</string>
|
||||
<key>PayloadIdentifier</key>
|
||||
<string>com.{{$domain}}.email.account</string>
|
||||
<key>PayloadType</key>
|
||||
<string>com.apple.mail.managed</string>
|
||||
<key>PayloadUUID</key>
|
||||
<string>{{uuidv4}}</string>
|
||||
<key>PayloadVersion</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>PayloadDescription</key>
|
||||
<string>E-Mail Einrichtung fuer {{$email}}</string>
|
||||
<key>PayloadDisplayName</key>
|
||||
<string>{{$domain}} E-Mail</string>
|
||||
<key>PayloadIdentifier</key>
|
||||
<string>com.{{$domain}}.email.profile</string>
|
||||
<key>PayloadOrganization</key>
|
||||
<string>Bay Area Affiliates, Inc.</string>
|
||||
<key>PayloadRemovalDisallowed</key>
|
||||
<false/>
|
||||
<key>PayloadType</key>
|
||||
<string>Configuration</string>
|
||||
<key>PayloadUUID</key>
|
||||
<string>{{uuidv4}}</string>
|
||||
<key>PayloadVersion</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -149,16 +149,80 @@ OUTPUT="${OUTPUT}</clientConfig>\` 200\n"
|
|||
OUTPUT="${OUTPUT} }\n"
|
||||
OUTPUT="${OUTPUT}\n"
|
||||
|
||||
# --- 4. Apple MobileConfig (Template) ---
|
||||
OUTPUT="${OUTPUT} # Apple MobileConfig (dynamisches Template)\n"
|
||||
OUTPUT="${OUTPUT} # .tpl → .html damit file_server text/html liefert und templates rendert\n"
|
||||
# --- 4. Apple MobileConfig (inline, wie Autodiscover/Autoconfig) ---
|
||||
OUTPUT="${OUTPUT} # Apple MobileConfig (inline respond)\n"
|
||||
OUTPUT="${OUTPUT} route /apple {\n"
|
||||
OUTPUT="${OUTPUT} root * /etc/caddy\n"
|
||||
OUTPUT="${OUTPUT} rewrite * /email.mobileconfig.html\n"
|
||||
OUTPUT="${OUTPUT} templates\n"
|
||||
OUTPUT="${OUTPUT} header Content-Type \"application/x-apple-aspen-config; charset=utf-8\"\n"
|
||||
OUTPUT="${OUTPUT} header Content-Disposition \"attachment; filename=email.mobileconfig\"\n"
|
||||
OUTPUT="${OUTPUT} file_server\n"
|
||||
OUTPUT="${OUTPUT} respond \`<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
OUTPUT="${OUTPUT}<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"
|
||||
OUTPUT="${OUTPUT}<plist version=\"1.0\">\n"
|
||||
OUTPUT="${OUTPUT}<dict>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadContent</key>\n"
|
||||
OUTPUT="${OUTPUT} <array>\n"
|
||||
OUTPUT="${OUTPUT} <dict>\n"
|
||||
OUTPUT="${OUTPUT} <key>EmailAccountDescription</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>{query.email}</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>EmailAccountName</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>{query.email}</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>EmailAccountType</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>EmailTypeIMAP</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>EmailAddress</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>{query.email}</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>IncomingMailServerAuthentication</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>EmailAuthPassword</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>IncomingMailServerHostName</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>imap.{labels.1}.{labels.0}</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>IncomingMailServerPortNumber</key>\n"
|
||||
OUTPUT="${OUTPUT} <integer>993</integer>\n"
|
||||
OUTPUT="${OUTPUT} <key>IncomingMailServerUseSSL</key>\n"
|
||||
OUTPUT="${OUTPUT} <true/>\n"
|
||||
OUTPUT="${OUTPUT} <key>IncomingMailServerUsername</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>{query.email}</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>OutgoingMailServerAuthentication</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>EmailAuthPassword</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>OutgoingMailServerHostName</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>smtp.{labels.1}.{labels.0}</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>OutgoingMailServerPortNumber</key>\n"
|
||||
OUTPUT="${OUTPUT} <integer>465</integer>\n"
|
||||
OUTPUT="${OUTPUT} <key>OutgoingMailServerUseSSL</key>\n"
|
||||
OUTPUT="${OUTPUT} <true/>\n"
|
||||
OUTPUT="${OUTPUT} <key>OutgoingMailServerUsername</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>{query.email}</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>OutgoingPasswordRequired</key>\n"
|
||||
OUTPUT="${OUTPUT} <true/>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadDescription</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>E-Mail Konfiguration</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadDisplayName</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>{labels.1}.{labels.0} E-Mail</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadIdentifier</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>com.{labels.1}.{labels.0}.email.account</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadType</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>com.apple.mail.managed</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadUUID</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>A1B2C3D4-E5F6-7890-ABCD-EF1234567890</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadVersion</key>\n"
|
||||
OUTPUT="${OUTPUT} <integer>1</integer>\n"
|
||||
OUTPUT="${OUTPUT} </dict>\n"
|
||||
OUTPUT="${OUTPUT} </array>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadDescription</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>E-Mail Einrichtung</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadDisplayName</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>{labels.1}.{labels.0} E-Mail</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadIdentifier</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>com.{labels.1}.{labels.0}.email.profile</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadOrganization</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>Bay Area Affiliates, Inc.</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadRemovalDisallowed</key>\n"
|
||||
OUTPUT="${OUTPUT} <false/>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadType</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>Configuration</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadUUID</key>\n"
|
||||
OUTPUT="${OUTPUT} <string>F0E1D2C3-B4A5-6789-0FED-CBA987654321</string>\n"
|
||||
OUTPUT="${OUTPUT} <key>PayloadVersion</key>\n"
|
||||
OUTPUT="${OUTPUT} <integer>1</integer>\n"
|
||||
OUTPUT="${OUTPUT}</dict>\n"
|
||||
OUTPUT="${OUTPUT}</plist>\` 200\n"
|
||||
OUTPUT="${OUTPUT} }\n"
|
||||
|
||||
# --- 5. Samsung Email (nutzt ebenfalls autoconfig, kein extra Block nötig) ---
|
||||
|
|
|
|||
Loading…
Reference in New Issue