diff --git a/data/conf/nginx/site.conf b/data/conf/nginx/site.conf index 57d9c9bc..07578a4c 100644 --- a/data/conf/nginx/site.conf +++ b/data/conf/nginx/site.conf @@ -9,7 +9,7 @@ server { ssl_ecdh_curve secp384r1; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; index index.php index.html; - server_name _; + server_name _ autodiscover.* autoconfig.*; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /web; @@ -39,6 +39,14 @@ server { deny all; } + if ($host ~* autodiscover\.(.*)) { + rewrite ^(.*) /autodiscover.php last; + } + + if ($host ~* autoconfig\.(.*)) { + rewrite ^(.*) /autoconfig.php last; + } + location ^~ /Microsoft-Server-ActiveSync { proxy_pass http://sogo/SOGo/Microsoft-Server-ActiveSync; proxy_connect_timeout 1000; diff --git a/data/web/autoconfig.php b/data/web/autoconfig.php new file mode 100644 index 00000000..4fd03474 --- /dev/null +++ b/data/web/autoconfig.php @@ -0,0 +1,69 @@ +<?php +if (empty($mailcow_hostname)) { exit(); } +header("Content-Type: application/xml"); +require_once "inc/vars.inc.php"; +?> +<?='<?xml version="1.0"?>';?> +<clientConfig version="1.1"> + <emailProvider id="<?=$mailcow_hostname;?>"> + + <displayName>A mailcow mail server</displayName> + <displayShortName>mail server</displayShortName> + + <incomingServer type="imap"> + <hostname><?=$mailcow_hostname;?></hostname> + <port>993</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>password-cleartext</authentication> + </incomingServer> + <incomingServer type="imap"> + <hostname><?=$mailcow_hostname;?></hostname> + <port>143</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>password-cleartext</authentication> + </incomingServer> + + <incomingServer type="pop3"> + <hostname><?=$mailcow_hostname;?></hostname> + <port>995</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>password-cleartext</authentication> + </incomingServer> + <incomingServer type="pop3"> + <hostname><?=$mailcow_hostname;?></hostname> + <port>110</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>password-cleartext</authentication> + </incomingServer> + + <outgoingServer type="smtp"> + <hostname><?=$mailcow_hostname;?></hostname> + <port>465</port> + <socketType>SSL</socketType> + <username>%EMAILADDRESS%</username> + <authentication>password-cleartext</authentication> + </outgoingServer> + + <outgoingServer type="smtp"> + <hostname><?=$mailcow_hostname;?></hostname> + <port>587</port> + <socketType>STARTTLS</socketType> + <username>%EMAILADDRESS%</username> + <authentication>password-cleartext</authentication> + </outgoingServer> + + <enable visiturl="https://<?=$mailcow_hostname;?>/admin.php"> + <instruction>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.</instruction> + <instruction lang="de">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.</instruction> + </enable> + + </emailProvider> + + <webMail> + <loginPage url="https://<?=$mailcow_hostname;?>/SOGo/" /> + </webMail> +</clientConfig> diff --git a/data/web/autodiscover.php b/data/web/autodiscover.php index 45b738de..a503b80c 100644 --- a/data/web/autodiscover.php +++ b/data/web/autodiscover.php @@ -5,17 +5,17 @@ $config = array( 'useEASforOutlook' => 'yes', 'autodiscoverType' => 'activesync', 'imap' => array( - 'server' => 'MAILCOW_HOST.MAILCOW_DOMAIN', + 'server' => $mailcow_hostname, 'port' => '993', 'ssl' => 'on', ), 'smtp' => array( - 'server' => 'MAILCOW_HOST.MAILCOW_DOMAIN', + 'server' => $mailcow_hostname, 'port' => '465', 'ssl' => 'on' ), 'activesync' => array( - 'url' => 'https://MAILCOW_HOST.MAILCOW_DOMAIN/Microsoft-Server-ActiveSync' + 'url' => 'https://' . $mailcow_hostname . '/Microsoft-Server-ActiveSync' ) ); // If useEASforOutlook == no, the autodiscoverType option will be replaced to imap. diff --git a/data/web/inc/vars.inc.php b/data/web/inc/vars.inc.php index 6f52b969..0c716b38 100644 --- a/data/web/inc/vars.inc.php +++ b/data/web/inc/vars.inc.php @@ -12,6 +12,9 @@ $database_host = "mysql"; $database_user = getenv('DBUSER'); $database_pass = getenv('DBPASS'); $database_name = getenv('DBNAME'); + +// Other variables +$mailcow_hostname = getenv('MAILCOW_HOSTNAME'); date_default_timezone_set(getenv('TZ')); // Where to go after adding and editing objects diff --git a/docker-compose.yml b/docker-compose.yml index 3f4f21af..b91c5516 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -82,6 +82,7 @@ services: - DBNAME=${DBNAME} - DBUSER=${DBUSER} - DBPASS=${DBPASS} + - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME} - TZ=${TZ} restart: always networks: