diff --git a/data/web/autoconfig.php b/data/web/autoconfig.php index 523d6183..d01bc724 100644 --- a/data/web/autoconfig.php +++ b/data/web/autoconfig.php @@ -5,16 +5,6 @@ if (empty($mailcow_hostname)) { exit(); } -$domain_dot = strpos($_SERVER['HTTP_HOST'], '.'); -$domain_port = strpos($_SERVER['HTTP_HOST'], ':'); -if ($domain_port === FALSE) { - $domain = substr($_SERVER['HTTP_HOST'], $domain_dot+1); - $port = 443; -} else { - $domain = substr($_SERVER['HTTP_HOST'], $domain_dot+1, $domain_port-$domain_dot-1); - $port = substr($_SERVER['HTTP_HOST'], $domain_port+1); -} - header('Content-Type: application/xml'); ?> '; ?> @@ -25,59 +15,52 @@ header('Content-Type: application/xml'); mail server - - + + 993 SSL %EMAILADDRESS% password-cleartext - - + + 143 STARTTLS %EMAILADDRESS% password-cleartext - - - + + 995 SSL %EMAILADDRESS% password-cleartext - - - - + + 110 STARTTLS %EMAILADDRESS% password-cleartext - - - + + 465 SSL %EMAILADDRESS% password-cleartext + - - + + 587 STARTTLS %EMAILADDRESS% password-cleartext - + If you didn't change the password given to you by the administrator or if you didn't change it in a long time, please consider doing that now. Sollten Sie das Ihnen durch den Administrator vergebene Passwort noch nicht geändert haben, empfehlen wir dies nun zu tun. Auch ein altes Passwort sollte aus Sicherheitsgründen geändert werden. @@ -85,6 +68,6 @@ if (count($records) == 0 || $records[0]['target'] != '') { ?> - + diff --git a/data/web/autodiscover.php b/data/web/autodiscover.php index 7f6081ae..fd8cd641 100644 --- a/data/web/autodiscover.php +++ b/data/web/autodiscover.php @@ -12,14 +12,13 @@ error_reporting(0); $data = trim(file_get_contents("php://input")); // Desktop client needs IMAP, unless it's Outlook 2013 or higher on Windows -if (strpos($data, 'autodiscover/outlook/responseschema') !== false) { // desktop client +if (strpos($data, 'autodiscover/outlook/responseschema')) { // desktop client $configuration['autodiscoverType'] = 'imap'; if ($configuration['useEASforOutlook'] == 'yes' && - // Office for macOS does not support EAS - strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') === false && - // Outlook 2013 (version 15) or higher - preg_match('/(Outlook|Office).+1[5-9]\./', $_SERVER['HTTP_USER_AGENT']) - ) { + // Office for macOS does not support EAS + strpos($_SERVER['HTTP_USER_AGENT'], 'Mac') === false && + // Outlook 2013 (version 15) or higher + preg_match('/(Outlook|Office).+1[5-9]\./', $_SERVER['HTTP_USER_AGENT'])) { $configuration['autodiscoverType'] = 'activesync'; } } @@ -61,28 +60,8 @@ else { Request->EMailAddress; - } catch (Exception $e) { - $email = $_SERVER['PHP_AUTH_USER']; - } - - $username = trim($email); - try { - $stmt = $pdo->prepare("SELECT `name` FROM `mailbox` WHERE `username`= :username"); - $stmt->execute(array(':username' => $username)); - $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; - } + $discover = new SimpleXMLElement($data); + $email = $discover->Request->EMailAddress; if ($configuration['autodiscoverType'] == 'imap') { ?> @@ -117,13 +96,13 @@ else { CalDAV - https:///SOGo/dav//Calendar + /SOGo/dav//Calendar off CardDAV - https:///SOGo/dav//Contacts + /SOGo/dav//Contacts off @@ -132,6 +111,21 @@ else { prepare("SELECT `name` FROM `mailbox` WHERE `username`= :username"); + $stmt->execute(array(':username' => $username)); + $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; + } ?> en:en diff --git a/data/web/clientconfig.php b/data/web/clientconfig.php deleted file mode 100644 index 68722a89..00000000 --- a/data/web/clientconfig.php +++ /dev/null @@ -1,185 +0,0 @@ -prepare("SELECT `name` FROM `mailbox` WHERE `username`= :username"); - $stmt->execute(array(':username' => $username)); - $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; -} -?> -
-

Client Configuration Guide

-

Select your email client or operating system below to view a step-by-step guide to setting up your email account.

- -

Apple macOS / iOS

- - -

Android

- - -

eM Client

- - -

KDE Kontact

- - -

Microsoft Outlook

- - -

Mozilla Thunderbird

- - -

Windows

- - -

Windows Phone

- -
- - diff --git a/data/web/inc/functions.inc.php b/data/web/inc/functions.inc.php index af93794b..b3420530 100644 --- a/data/web/inc/functions.inc.php +++ b/data/web/inc/functions.inc.php @@ -62,17 +62,17 @@ function hasMailboxObjectAccess($username, $role, $object) { } return false; } -function pem_to_der($pem_key) { - // Need to remove BEGIN/END PUBLIC KEY - $lines = explode("\n", trim($pem_key)); - unset($lines[count($lines)-1]); - unset($lines[0]); - return base64_decode(implode('', $lines)); -} function generate_tlsa_digest($hostname, $port, $starttls = null) { if (!is_valid_domain_name($hostname)) { return "Not a valid hostname"; } + function pem_to_der($pem_key) { + // Need to remove BEGIN/END PUBLIC KEY + $lines = explode("\n", trim($pem_key)); + unset($lines[count($lines)-1]); + unset($lines[0]); + return base64_decode(implode('', $lines)); + } if (empty($starttls)) { $context = stream_context_create(array("ssl" => array("capture_peer_cert" => true, 'verify_peer' => false, 'allow_self_signed' => true))); @@ -88,24 +88,20 @@ function generate_tlsa_digest($hostname, $port, $starttls = null) { return $error_nr . ': ' . $error_msg; } $banner = fread($stream, 512 ); - if (preg_match("/^220/i", $banner)) { // SMTP + if (preg_match("/^220/i", $banner)) { fwrite($stream,"HELO tlsa.generator.local\r\n"); fread($stream, 512); fwrite($stream,"STARTTLS\r\n"); fread($stream, 512); } - elseif (preg_match("/imap.+starttls/i", $banner)) { // IMAP + elseif (preg_match("/imap.+starttls/i", $banner)) { fwrite($stream,"A1 STARTTLS\r\n"); fread($stream, 512); } - elseif (preg_match("/^\+OK/", $banner)) { // POP3 + elseif (preg_match("/^\+OK/", $banner)) { fwrite($stream,"STLS\r\n"); fread($stream, 512); } - elseif (preg_match("/^OK/m", $banner)) { // Sieve - fwrite($stream,"STARTTLS\r\n"); - fread($stream, 512); - } else { return 'Unknown banner: "' . htmlspecialchars(trim($banner)) . '"'; } diff --git a/data/web/inc/vars.inc.php b/data/web/inc/vars.inc.php index 775af1e1..a52442db 100644 --- a/data/web/inc/vars.inc.php +++ b/data/web/inc/vars.inc.php @@ -18,48 +18,31 @@ $database_name = getenv('DBNAME'); $mailcow_hostname = getenv('MAILCOW_HOSTNAME'); // Autodiscover settings -$https_port = strpos($_SERVER['HTTP_HOST'], ':'); -if ($https_port === FALSE) { - $https_port = 443; -} else { - $https_port = substr($_SERVER['HTTP_HOST'], $https_port+1); -} $autodiscover_config = array( // Enable the autodiscover service for Outlook desktop clients 'useEASforOutlook' => 'yes', // General autodiscover service type: "activesync" or "imap" 'autodiscoverType' => 'activesync', - // Please don't use STARTTLS-enabled service ports in the "port" variable. + // Please don't use STARTTLS-enabled service ports here. // The autodiscover service will always point to SMTPS and IMAPS (TLS-wrapped services). - // The autoconfig service will additionally announce the STARTTLS-enabled ports, specified in the "tlsport" variable. 'imap' => array( 'server' => $mailcow_hostname, - 'port' => array_pop(explode(':', getenv('IMAPS_PORT'))), - 'tlsport' => array_pop(explode(':', getenv('IMAP_PORT'))), - ), - 'pop3' => array( - 'server' => $mailcow_hostname, - 'port' => array_pop(explode(':', getenv('POPS_PORT'))), - 'tlsport' => array_pop(explode(':', getenv('POP_PORT'))), + 'port' => getenv('IMAPS_PORT'), ), 'smtp' => array( 'server' => $mailcow_hostname, - 'port' => array_pop(explode(':', getenv('SMTPS_PORT'))), - 'tlsport' => array_pop(explode(':', getenv('SUBMISSION_PORT'))), + 'port' => getenv('SMTPS_PORT'), ), 'activesync' => array( - 'url' => 'https://'.$mailcow_hostname.($https_port == 443 ? '' : ':'.$https_port).'/Microsoft-Server-ActiveSync', + 'url' => 'https://'.$mailcow_hostname.'/Microsoft-Server-ActiveSync' ), 'caldav' => array( - 'server' => $mailcow_hostname, - 'port' => $https_port, + 'url' => 'https://'.$mailcow_hostname ), 'carddav' => array( - 'server' => $mailcow_hostname, - 'port' => $https_port, - ), + 'url' => 'https://'.$mailcow_hostname + ) ); -unset($https_port); // Where to go after adding and editing objects // Can be "form" or "previous" diff --git a/data/web/lang/lang.de.php b/data/web/lang/lang.de.php index 54a497ab..732171cc 100644 --- a/data/web/lang/lang.de.php +++ b/data/web/lang/lang.de.php @@ -108,7 +108,6 @@ $lang['user']['user_settings'] = 'Benutzereinstellungen'; $lang['user']['mailbox_settings'] = 'Mailbox-Einstellungen'; $lang['user']['mailbox_details'] = 'Mailbox-Details'; $lang['user']['change_password'] = 'Passwort ändern'; -$lang['user']['client_configuration'] = 'Konfigurationsanleitungen für E-Mail-Programme und Smartphones anzeigen'; $lang['user']['new_password'] = 'Neues Passwort'; $lang['user']['save_changes'] = 'Änderungen speichern'; $lang['user']['password_now'] = 'Aktuelles Passwort (Änderungen bestätigen)'; diff --git a/data/web/lang/lang.en.php b/data/web/lang/lang.en.php index f0608821..391c7d01 100644 --- a/data/web/lang/lang.en.php +++ b/data/web/lang/lang.en.php @@ -110,7 +110,6 @@ $lang['user']['user_settings'] = 'User settings'; $lang['user']['mailbox_settings'] = 'Mailbox settings'; $lang['user']['mailbox_details'] = 'Mailbox details'; $lang['user']['change_password'] = 'Change password'; -$lang['user']['client_configuration'] = 'Show configuration guides for email clients and smartphones'; $lang['user']['new_password'] = 'New password'; $lang['user']['save_changes'] = 'Save changes'; $lang['user']['password_now'] = 'Current password (confirm changes)'; diff --git a/data/web/mobileconfig.php b/data/web/mobileconfig.php deleted file mode 100644 index 198fa4d7..00000000 --- a/data/web/mobileconfig.php +++ /dev/null @@ -1,167 +0,0 @@ -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 '' . "\n"; -?> - - - - PayloadContent - - - CalDAVAccountDescription - - CalDAVHostName - - CalDAVPort - - CalDAVPrincipalURL - /SOGo/dav/ - CalDAVUseSSL - - CalDAVUsername - - PayloadDescription - Configures CalDAV account. - PayloadDisplayName - CalDAV () - PayloadIdentifier - .CalDAV - PayloadOrganization - - PayloadType - com.apple.caldav.account - PayloadUUID - FC898573-EBA8-48AF-93BD-BFA0C9778FA7 - PayloadVersion - 1 - - - EmailAccountDescription - - EmailAccountType - EmailTypeIMAP - EmailAccountName - - EmailAddress - - IncomingMailServerAuthentication - EmailAuthPassword - IncomingMailServerHostName - - IncomingMailServerPortNumber - - IncomingMailServerUseSSL - - IncomingMailServerUsername - - OutgoingMailServerAuthentication - EmailAuthPassword - OutgoingMailServerHostName - - OutgoingMailServerPortNumber - - OutgoingMailServerUseSSL - - OutgoingMailServerUsername - - OutgoingPasswordSameAsIncomingPassword - - PayloadDescription - Configures email account. - PayloadDisplayName - IMAP Account () - PayloadIdentifier - .email - PayloadOrganization - - PayloadType - com.apple.mail.managed - PayloadUUID - 00294FBB-1016-413E-87B9-652D856D6875 - PayloadVersion - 1 - PreventAppSheet - - PreventMove - - SMIMEEnabled - - - - CardDAVAccountDescription - - CardDAVHostName - - CardDAVPort - - CardDAVPrincipalURL - /SOGo/dav/ - CardDAVUseSSL - - CardDAVUsername - - PayloadDescription - Configures CardDAV accounts - PayloadDisplayName - CardDAV () - PayloadIdentifier - .carddav - PayloadOrganization - - PayloadType - com.apple.carddav.account - PayloadUUID - 0797EF2B-B1F1-4BC7-ABCD-4580862252B4 - PayloadVersion - 1 - - - PayloadDescription - IMAP, CalDAV, CardDAV - PayloadDisplayName - Mailcow - PayloadIdentifier - - PayloadOrganization - - PayloadRemovalDisallowed - - PayloadType - Configuration - PayloadUUID - 5EE248C5-ACCB-42D8-9199-8F8ED08D5624 - PayloadVersion - 1 - - diff --git a/data/web/user.php b/data/web/user.php index ba7678e2..77ccc62d 100644 --- a/data/web/user.php +++ b/data/web/user.php @@ -74,7 +74,6 @@ elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == '

[]

-

[]