diff --git a/mailcow/src/mailcow-dockerized/data/web/mobileconfig.php b/mailcow/src/mailcow-dockerized/data/web/mobileconfig.php
new file mode 100644
index 0000000..256f638
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/mobileconfig.php
@@ -0,0 +1,185 @@
+<?php
+require_once 'inc/prerequisites.inc.php';
+
+if (empty($mailcow_hostname)) {
+  exit();
+}
+if (!isset($_SESSION['mailcow_cc_role']) || $_SESSION['mailcow_cc_role'] != 'user') {
+  session_destroy();
+  // probably better than appending the whole current http query string
+  $append_get = (isset($_GET['only_email'])) ? '&only_email' : '';
+  header('Location: index.php?mobileconfig' . $append_get);
+  die();
+}
+
+error_reporting(0);
+
+header('Content-Type: application/x-apple-aspen-config');
+header('Content-Disposition: attachment; filename="'.$UI_TEXTS['main_name'].'.mobileconfig"');
+
+$email = $_SESSION['mailcow_cc_username'];
+$domain = explode('@', $_SESSION['mailcow_cc_username'])[1];
+$identifier = implode('.', array_reverse(preg_split( '/(@|\.)/', $email))) . '.appleprofile.'.preg_replace('/[^a-zA-Z0-9]+/', '', $UI_TEXTS['main_name']);
+
+try {
+  $stmt = $pdo->prepare("SELECT `name` FROM `mailbox` WHERE `username`= :username");
+  $stmt->execute(array(':username' => $email));
+  $MailboxData = $stmt->fetch(PDO::FETCH_ASSOC);
+  $displayname = htmlspecialchars(empty($MailboxData['name']) ? $email : $MailboxData['name'], ENT_NOQUOTES);
+}
+catch(PDOException $e) {
+  $displayname = $email;
+}
+
+if (isset($_GET['only_email'])) {
+  $onlyEmailAccount = true;
+  $description = 'IMAP';  
+} else {
+  $onlyEmailAccount = false;
+  $description = 'IMAP, CalDAV, CardDAV'; 
+}
+
+echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
+?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+  <dict>
+    <key>PayloadContent</key>
+    <array>
+      <dict>
+        <key>EmailAccountDescription</key>
+        <string><?=$email?></string>
+        <key>EmailAccountType</key>
+        <string>EmailTypeIMAP</string>
+        <key>EmailAccountName</key>
+        <string><?=$displayname?></string>
+        <key>EmailAddress</key>
+        <string><?=$email?></string>
+        <key>IncomingMailServerAuthentication</key>
+        <string>EmailAuthPassword</string>
+        <key>IncomingMailServerHostName</key>
+        <string><?=$autodiscover_config['imap']['server']?></string>
+        <key>IncomingMailServerPortNumber</key>
+        <integer><?=$autodiscover_config['imap']['port']?></integer>
+        <key>IncomingMailServerUseSSL</key>
+        <true/>
+        <key>IncomingMailServerUsername</key>
+        <string><?=$email?></string>
+        <key>OutgoingMailServerAuthentication</key>
+        <string>EmailAuthPassword</string>
+        <key>OutgoingMailServerHostName</key>
+        <string><?=$autodiscover_config['smtp']['server']?></string>
+        <key>OutgoingMailServerPortNumber</key>
+        <integer><?=$autodiscover_config['smtp']['port']?></integer>
+        <key>OutgoingMailServerUseSSL</key>
+        <true/>
+        <key>OutgoingMailServerUsername</key>
+        <string><?=$email?></string>
+        <key>OutgoingPasswordSameAsIncomingPassword</key>
+        <true/>
+        <key>PayloadDescription</key>
+        <string>Configures email account.</string>
+        <key>PayloadDisplayName</key>
+        <string>IMAP Account (<?=$email?>)</string>
+        <key>PayloadIdentifier</key>
+        <string><?=$identifier?>.email</string>
+        <key>PayloadOrganization</key>
+        <string></string>
+        <key>PayloadType</key>
+        <string>com.apple.mail.managed</string>
+        <key>PayloadUUID</key>
+        <string><?=getGUID()?></string>
+        <key>PayloadVersion</key>
+        <integer>1</integer>
+        <key>PreventAppSheet</key>
+        <false/>
+        <key>PreventMove</key>
+        <false/>
+        <key>SMIMESigningUserOverrideable</key>
+        <true/>
+        <key>SMIMESigningCertificateUUIDUserOverrideable</key>
+        <true/>
+        <key>SMIMEEncryptByDefaultUserOverrideable</key>
+        <true/>
+        <key>SMIMEEncryptionCertificateUUIDUserOverrideable</key>
+        <true/>
+        <key>SMIMEEnableEncryptionPerMessageSwitch</key>
+        <true/>
+      </dict>
+      <?php if($onlyEmailAccount === false): ?>
+      <dict>
+        <key>CalDAVAccountDescription</key>
+        <string><?=$email?></string>
+        <key>CalDAVHostName</key>
+        <string><?=$autodiscover_config['caldav']['server']?></string>
+        <key>CalDAVPort</key>
+        <real><?=$autodiscover_config['caldav']['port']?></real>
+        <key>CalDAVPrincipalURL</key>
+        <string>/SOGo/dav/<?=$email?></string>
+        <key>CalDAVUseSSL</key>
+        <true/>
+        <key>CalDAVUsername</key>
+        <string><?=$email?></string>
+        <key>PayloadDescription</key>
+        <string>Configures CalDAV account.</string>
+        <key>PayloadDisplayName</key>
+        <string>CalDAV (<?=$email?>)</string>
+        <key>PayloadIdentifier</key>
+        <string><?=$identifier?>.CalDAV</string>
+        <key>PayloadOrganization</key>
+        <string></string>
+        <key>PayloadType</key>
+        <string>com.apple.caldav.account</string>
+        <key>PayloadUUID</key>
+        <string><?=getGUID()?></string>
+        <key>PayloadVersion</key>
+        <integer>1</integer>
+      </dict>
+      <dict>
+        <key>CardDAVAccountDescription</key>
+        <string><?=$email?></string>
+        <key>CardDAVHostName</key>
+        <string><?=$autodiscover_config['carddav']['server']?></string>
+        <key>CardDAVPort</key>
+        <integer><?=$autodiscover_config['carddav']['port']?></integer>
+        <key>CardDAVPrincipalURL</key>
+        <string>/SOGo/dav/<?=$email?></string>
+        <key>CardDAVUseSSL</key>
+        <true/>
+        <key>CardDAVUsername</key>
+        <string><?=$email?></string>
+        <key>PayloadDescription</key>
+        <string>Configures CardDAV accounts</string>
+        <key>PayloadDisplayName</key>
+        <string>CardDAV (<?=$email?>)</string>
+        <key>PayloadIdentifier</key>
+        <string><?=$identifier?>.carddav</string>
+        <key>PayloadOrganization</key>
+        <string></string>
+        <key>PayloadType</key>
+        <string>com.apple.carddav.account</string>
+        <key>PayloadUUID</key>
+        <string><?=getGUID()?></string>
+        <key>PayloadVersion</key>
+        <integer>1</integer>
+      </dict>
+      <?php endif; ?>
+    </array>
+    <key>PayloadDescription</key>
+    <string><?=$description?></string>
+    <key>PayloadDisplayName</key>
+    <string><?=$email?></string>
+    <key>PayloadIdentifier</key>
+    <string><?=$identifier?></string>
+    <key>PayloadOrganization</key>
+    <string><?=$UI_TEXTS['main_name']?></string>
+    <key>PayloadRemovalDisallowed</key>
+    <false/>
+    <key>PayloadType</key>
+    <string>Configuration</string>
+    <key>PayloadUUID</key>
+    <string><?=getGUID()?></string>
+    <key>PayloadVersion</key>
+    <integer>1</integer>
+  </dict>
+</plist>
