|  | @@ -0,0 +1,167 @@
 | 
	
		
			
				|  |  | +<?php
 | 
	
		
			
				|  |  | +require_once 'inc/prerequisites.inc.php';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +if (empty($mailcow_hostname)) {
 | 
	
		
			
				|  |  | +  exit();
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +if (!isset($_SESSION['mailcow_cc_role']) || $_SESSION['mailcow_cc_role'] != 'user') {
 | 
	
		
			
				|  |  | +  header("Location: index.php");
 | 
	
		
			
				|  |  | +  die("This page is only available to logged-in users, not admins.");
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +header('Content-Type: application/x-apple-aspen-config');
 | 
	
		
			
				|  |  | +header('Content-Disposition: attachment; filename="Mailcow.mobileconfig"');
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +$email = $_SESSION['mailcow_cc_username'];
 | 
	
		
			
				|  |  | +$domain = explode('@', $_SESSION['mailcow_cc_username'])[1];
 | 
	
		
			
				|  |  | +$identifier = implode('.', array_reverse(explode('.', $domain))) . '.iphoneprofile.mailcow';
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +try {
 | 
	
		
			
				|  |  | +  $stmt = $pdo->prepare("SELECT `name` FROM `mailbox` WHERE `username`= :username");
 | 
	
		
			
				|  |  | +  $stmt->execute(array(':username' => $email));
 | 
	
		
			
				|  |  | +  $MailboxData = $stmt->fetch(PDO::FETCH_ASSOC);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +catch(PDOException $e) {
 | 
	
		
			
				|  |  | +  die("Failed to determine name from SQL");
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +if (!empty($MailboxData['name'])) {
 | 
	
		
			
				|  |  | +  $displayname = utf8_encode($MailboxData['name']);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +else {
 | 
	
		
			
				|  |  | +  $displayname = $email;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +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>CalDAVAccountDescription</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $domain; ?></string>
 | 
	
		
			
				|  |  | +			<key>CalDAVHostName</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $autodiscover_config['caldav']['server']; ?></string>
 | 
	
		
			
				|  |  | +			<key>CalDAVPort</key>
 | 
	
		
			
				|  |  | +			<real><?php echo $autodiscover_config['caldav']['port']; ?></real>
 | 
	
		
			
				|  |  | +			<key>CalDAVPrincipalURL</key>
 | 
	
		
			
				|  |  | +			<string>/SOGo/dav/<?php echo $email; ?></string>
 | 
	
		
			
				|  |  | +			<key>CalDAVUseSSL</key>
 | 
	
		
			
				|  |  | +			<true/>
 | 
	
		
			
				|  |  | +			<key>CalDAVUsername</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $email; ?></string>
 | 
	
		
			
				|  |  | +			<key>PayloadDescription</key>
 | 
	
		
			
				|  |  | +			<string>Configures CalDAV account.</string>
 | 
	
		
			
				|  |  | +			<key>PayloadDisplayName</key>
 | 
	
		
			
				|  |  | +			<string>CalDAV (<?php echo $domain; ?>)</string>
 | 
	
		
			
				|  |  | +			<key>PayloadIdentifier</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $identifier; ?>.CalDAV</string>
 | 
	
		
			
				|  |  | +			<key>PayloadOrganization</key>
 | 
	
		
			
				|  |  | +			<string></string>
 | 
	
		
			
				|  |  | +			<key>PayloadType</key>
 | 
	
		
			
				|  |  | +			<string>com.apple.caldav.account</string>
 | 
	
		
			
				|  |  | +			<key>PayloadUUID</key>
 | 
	
		
			
				|  |  | +			<string>FC898573-EBA8-48AF-93BD-BFA0C9778FA7</string>
 | 
	
		
			
				|  |  | +			<key>PayloadVersion</key>
 | 
	
		
			
				|  |  | +			<integer>1</integer>
 | 
	
		
			
				|  |  | +		</dict>
 | 
	
		
			
				|  |  | +		<dict>
 | 
	
		
			
				|  |  | +			<key>EmailAccountDescription</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $domain; ?></string>
 | 
	
		
			
				|  |  | +			<key>EmailAccountType</key>
 | 
	
		
			
				|  |  | +			<string>EmailTypeIMAP</string>
 | 
	
		
			
				|  |  | +			<key>EmailAccountName</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $displayname; ?></string>
 | 
	
		
			
				|  |  | +			<key>EmailAddress</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $email; ?></string>
 | 
	
		
			
				|  |  | +			<key>IncomingMailServerAuthentication</key>
 | 
	
		
			
				|  |  | +			<string>EmailAuthPassword</string>
 | 
	
		
			
				|  |  | +			<key>IncomingMailServerHostName</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $autodiscover_config['imap']['server']; ?></string>
 | 
	
		
			
				|  |  | +			<key>IncomingMailServerPortNumber</key>
 | 
	
		
			
				|  |  | +			<integer><?php echo $autodiscover_config['imap']['port']; ?></integer>
 | 
	
		
			
				|  |  | +			<key>IncomingMailServerUseSSL</key>
 | 
	
		
			
				|  |  | +			<true/>
 | 
	
		
			
				|  |  | +			<key>IncomingMailServerUsername</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $email; ?></string>
 | 
	
		
			
				|  |  | +			<key>OutgoingMailServerAuthentication</key>
 | 
	
		
			
				|  |  | +			<string>EmailAuthPassword</string>
 | 
	
		
			
				|  |  | +			<key>OutgoingMailServerHostName</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $autodiscover_config['smtp']['server']; ?></string>
 | 
	
		
			
				|  |  | +			<key>OutgoingMailServerPortNumber</key>
 | 
	
		
			
				|  |  | +			<integer><?php echo $autodiscover_config['smtp']['port']; ?></integer>
 | 
	
		
			
				|  |  | +			<key>OutgoingMailServerUseSSL</key>
 | 
	
		
			
				|  |  | +			<true/>
 | 
	
		
			
				|  |  | +			<key>OutgoingMailServerUsername</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $email; ?></string>
 | 
	
		
			
				|  |  | +			<key>OutgoingPasswordSameAsIncomingPassword</key>
 | 
	
		
			
				|  |  | +			<true/>
 | 
	
		
			
				|  |  | +			<key>PayloadDescription</key>
 | 
	
		
			
				|  |  | +			<string>Configures email account.</string>
 | 
	
		
			
				|  |  | +			<key>PayloadDisplayName</key>
 | 
	
		
			
				|  |  | +			<string>IMAP Account (<?php echo $domain; ?>)</string>
 | 
	
		
			
				|  |  | +			<key>PayloadIdentifier</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $identifier; ?>.email</string>
 | 
	
		
			
				|  |  | +			<key>PayloadOrganization</key>
 | 
	
		
			
				|  |  | +			<string></string>
 | 
	
		
			
				|  |  | +			<key>PayloadType</key>
 | 
	
		
			
				|  |  | +			<string>com.apple.mail.managed</string>
 | 
	
		
			
				|  |  | +			<key>PayloadUUID</key>
 | 
	
		
			
				|  |  | +			<string>00294FBB-1016-413E-87B9-652D856D6875</string>
 | 
	
		
			
				|  |  | +			<key>PayloadVersion</key>
 | 
	
		
			
				|  |  | +			<integer>1</integer>
 | 
	
		
			
				|  |  | +			<key>PreventAppSheet</key>
 | 
	
		
			
				|  |  | +			<false/>
 | 
	
		
			
				|  |  | +			<key>PreventMove</key>
 | 
	
		
			
				|  |  | +			<false/>
 | 
	
		
			
				|  |  | +			<key>SMIMEEnabled</key>
 | 
	
		
			
				|  |  | +			<false/>
 | 
	
		
			
				|  |  | +		</dict>
 | 
	
		
			
				|  |  | +		<dict>
 | 
	
		
			
				|  |  | +			<key>CardDAVAccountDescription</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $domain; ?></string>
 | 
	
		
			
				|  |  | +			<key>CardDAVHostName</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $autodiscover_config['carddav']['server']; ?></string>
 | 
	
		
			
				|  |  | +			<key>CardDAVPort</key>
 | 
	
		
			
				|  |  | +			<integer><?php echo $autodiscover_config['carddav']['port']; ?></integer>
 | 
	
		
			
				|  |  | +			<key>CardDAVPrincipalURL</key>
 | 
	
		
			
				|  |  | +			<string>/SOGo/dav/<?php echo $email; ?></string>
 | 
	
		
			
				|  |  | +			<key>CardDAVUseSSL</key>
 | 
	
		
			
				|  |  | +			<true/>
 | 
	
		
			
				|  |  | +			<key>CardDAVUsername</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $email; ?></string>
 | 
	
		
			
				|  |  | +			<key>PayloadDescription</key>
 | 
	
		
			
				|  |  | +			<string>Configures CardDAV accounts</string>
 | 
	
		
			
				|  |  | +			<key>PayloadDisplayName</key>
 | 
	
		
			
				|  |  | +			<string>CardDAV (<?php echo $domain; ?>)</string>
 | 
	
		
			
				|  |  | +			<key>PayloadIdentifier</key>
 | 
	
		
			
				|  |  | +			<string><?php echo $identifier; ?>.carddav</string>
 | 
	
		
			
				|  |  | +			<key>PayloadOrganization</key>
 | 
	
		
			
				|  |  | +			<string></string>
 | 
	
		
			
				|  |  | +			<key>PayloadType</key>
 | 
	
		
			
				|  |  | +			<string>com.apple.carddav.account</string>
 | 
	
		
			
				|  |  | +			<key>PayloadUUID</key>
 | 
	
		
			
				|  |  | +			<string>0797EF2B-B1F1-4BC7-ABCD-4580862252B4</string>
 | 
	
		
			
				|  |  | +			<key>PayloadVersion</key>
 | 
	
		
			
				|  |  | +			<integer>1</integer>
 | 
	
		
			
				|  |  | +		</dict>
 | 
	
		
			
				|  |  | +	</array>
 | 
	
		
			
				|  |  | +	<key>PayloadDescription</key>
 | 
	
		
			
				|  |  | +	<string>IMAP, CalDAV, CardDAV</string>
 | 
	
		
			
				|  |  | +	<key>PayloadDisplayName</key>
 | 
	
		
			
				|  |  | +	<string><?php echo $domain; ?> Mailcow</string>
 | 
	
		
			
				|  |  | +	<key>PayloadIdentifier</key>
 | 
	
		
			
				|  |  | +	<string><?php echo $identifier; ?></string>
 | 
	
		
			
				|  |  | +	<key>PayloadOrganization</key>
 | 
	
		
			
				|  |  | +	<string></string>
 | 
	
		
			
				|  |  | +	<key>PayloadRemovalDisallowed</key>
 | 
	
		
			
				|  |  | +	<false/>
 | 
	
		
			
				|  |  | +	<key>PayloadType</key>
 | 
	
		
			
				|  |  | +	<string>Configuration</string>
 | 
	
		
			
				|  |  | +	<key>PayloadUUID</key>
 | 
	
		
			
				|  |  | +	<string>5EE248C5-ACCB-42D8-9199-8F8ED08D5624</string>
 | 
	
		
			
				|  |  | +	<key>PayloadVersion</key>
 | 
	
		
			
				|  |  | +	<integer>1</integer>
 | 
	
		
			
				|  |  | +</dict>
 | 
	
		
			
				|  |  | +</plist>
 |