diff --git a/data/Dockerfiles/sogo/bootstrap-sogo.sh b/data/Dockerfiles/sogo/bootstrap-sogo.sh index 443b836e..612a4e00 100755 --- a/data/Dockerfiles/sogo/bootstrap-sogo.sh +++ b/data/Dockerfiles/sogo/bootstrap-sogo.sh @@ -258,4 +258,10 @@ else rm /etc/cron.d/sogo fi +if [[ "${SKIP_SOGO}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then + echo "SKIP_SOGO=y, skipping SOGo..." + sleep 365d + exit 0 +fi + exec gosu sogo /usr/sbin/sogod diff --git a/data/Dockerfiles/watchdog/watchdog.sh b/data/Dockerfiles/watchdog/watchdog.sh index 7cf7530b..17acf56f 100755 --- a/data/Dockerfiles/watchdog/watchdog.sh +++ b/data/Dockerfiles/watchdog/watchdog.sh @@ -770,6 +770,7 @@ PID=$! echo "Spawned phpfpm_checks with PID ${PID}" BACKGROUND_TASKS+=(${PID}) +if [[ "${SKIP_SOGO}" =~ ^([nN][oO]|[nN])+$ ]]; then ( while true; do if ! sogo_checks; then @@ -781,6 +782,7 @@ done PID=$! echo "Spawned sogo_checks with PID ${PID}" BACKGROUND_TASKS+=(${PID}) +fi if [ ${CHECK_UNBOUND} -eq 1 ]; then ( diff --git a/data/conf/rspamd/custom/bulk_header.map b/data/conf/rspamd/custom/bulk_header.map index bebdba3d..ed1997c2 100644 --- a/data/conf/rspamd/custom/bulk_header.map +++ b/data/conf/rspamd/custom/bulk_header.map @@ -1,4 +1,3 @@ -/X-CSA-Complaints: .*/i /X-EMV-Platform; .*/i /.*nur-1-click*/i /.*episerver.*/i diff --git a/data/conf/rspamd/local.d/multimap.conf b/data/conf/rspamd/local.d/multimap.conf index a7df7304..25551422 100644 --- a/data/conf/rspamd/local.d/multimap.conf +++ b/data/conf/rspamd/local.d/multimap.conf @@ -96,6 +96,7 @@ SIEVE_HOST { type = "ip"; map = "$LOCAL_CONFDIR/custom/dovecot_trusted.map"; symbols_set = ["SIEVE_HOST"]; + score = -15; } RSPAMD_HOST { @@ -150,3 +151,10 @@ BAD_LANG { regexp = true; score = 5.0; } + +BAZAR_ABUSE_CH { + type = "selector"; + selector = "attachments(hex,sha256)"; + map = "https://bazaar.abuse.ch/export/txt/md5/recent/"; + score = 10.0; +} diff --git a/data/web/autodiscover.php b/data/web/autodiscover.php index 3f258e86..c18edbfc 100644 --- a/data/web/autodiscover.php +++ b/data/web/autodiscover.php @@ -37,6 +37,10 @@ if (strpos($data, 'autodiscover/outlook/responseschema') !== false) { } } +if (getenv('SKIP_SOGO') == "y") { + $autodiscover_config['autodiscoverType'] = 'imap'; +} + //$dsn = $database_type . ":host=" . $database_host . ";dbname=" . $database_name; $dsn = $database_type . ":unix_socket=" . $database_sock . ";dbname=" . $database_name; $opt = [ @@ -176,6 +180,9 @@ if ($login_role === "user") { on off + CalDAV https:///SOGo/dav// @@ -188,6 +195,9 @@ if ($login_role === "user") { off + +

+
@@ -719,6 +725,9 @@ if (isset($_SESSION['mailcow_cc_role'])) { +
@@ -727,6 +736,9 @@ if (isset($_SESSION['mailcow_cc_role'])) {
+
diff --git a/data/web/inc/header.inc.php b/data/web/inc/header.inc.php index 4f58833b..429745c2 100644 --- a/data/web/inc/header.inc.php +++ b/data/web/inc/header.inc.php @@ -108,7 +108,7 @@ >
  • 'activesync', // If autodiscoverType => activesync, also use ActiveSync (EAS) for Outlook desktop clients (>= Outlook 2013 on Windows) // Outlook for Mac does not support ActiveSync diff --git a/data/web/index.php b/data/web/index.php index 83482c63..f0f622ed 100644 --- a/data/web/index.php +++ b/data/web/index.php @@ -34,11 +34,11 @@ $_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
    @@ -57,55 +57,54 @@ $_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
    - +
    - +

    + + + - - - -   - $val): - ?> -   - +   + $val) { + ?> +   +
    - +
    @@ -113,19 +112,19 @@ $_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
    - +

    - +

    - +
    - + Adresse de courriel complète ou @exemple.com pour recevoir tous les messages d'un domaine (séparés par de virgules). Domaines mailcow seulement", "alias_domain": "Alias de domaine", @@ -240,6 +241,7 @@ "action": "Action", "activate": "Activer", "active": "Actif", + "add": "Ajouter", "add_alias": "Ajouter un alias", "add_domain": "Ajouter un domaine", "add_domain_alias": "Ajouter un alias de domaine", diff --git a/data/web/lang/lang.it.json b/data/web/lang/lang.it.json index 503ca951..7180a8ef 100644 --- a/data/web/lang/lang.it.json +++ b/data/web/lang/lang.it.json @@ -4,6 +4,7 @@ }, "add": { "active": "Attiva", + "add": "Aggiungi", "alias_address": "Indirizzo alias/es:", "alias_address_info": "Indirizzo e-mail completo/es @example.com, per catturare tutti i messaggi di un dominio (separati da virgola). solo domini mailcow.", "alias_domain": "Dominio alias", @@ -203,6 +204,7 @@ "action": "Azione", "activate": "Attiva", "active": "Attiva", + "add": "Aggiungi", "add_alias": "Aggiungi alias", "add_domain": "Aggiungi Dominio", "add_domain_alias": "Aggiungi alias Dominio", diff --git a/data/web/lang/lang.lv.json b/data/web/lang/lang.lv.json index 0ba17ed0..1e2d025c 100644 --- a/data/web/lang/lang.lv.json +++ b/data/web/lang/lang.lv.json @@ -8,6 +8,7 @@ "add": { "activate_filter_warn": "Visi pārējie filtri tiks deaktivizēti, kad aktīvs ir atzīmēts.", "active": "Aktīvs", + "add": "Pievienot", "add_domain_only": "Tikai pievienot domēnu", "add_domain_restart": "Pievienot domēnu un restartēt SOGo", "alias_address": "Alias addrese/s", @@ -295,6 +296,7 @@ "action": "Rīcība", "activate": "Activate", "active": "Aktīvs", + "add": "Pievienot", "add_alias": "Pievienot alias", "add_bcc_entry": "Pievienot BCC karti", "add_domain": "Pievienot domēnu", diff --git a/data/web/lang/lang.nl.json b/data/web/lang/lang.nl.json index 84c1d53e..0f0e18cd 100644 --- a/data/web/lang/lang.nl.json +++ b/data/web/lang/lang.nl.json @@ -27,6 +27,7 @@ "add": { "activate_filter_warn": "Alle andere filters worden gedeactiveerd zolang deze geactiveerd is.", "active": "Actief", + "add": "Toevoegen", "add_domain_only": "Voeg alleen domein toe", "add_domain_restart": "Voeg domein toe en herstart SOGo", "alias_address": "Aliasadres(sen)", @@ -570,6 +571,7 @@ "action": "Handeling", "activate": "Activeer", "active": "Actief", + "add": "Toevoegen", "add_alias": "Voeg alias toe", "add_bcc_entry": "Voeg BCC-map toe", "add_domain": "Voeg domein toe", diff --git a/data/web/lang/lang.pl.json b/data/web/lang/lang.pl.json index 4cd595a0..995f088c 100644 --- a/data/web/lang/lang.pl.json +++ b/data/web/lang/lang.pl.json @@ -5,6 +5,7 @@ }, "add": { "active": "Aktywny", + "add": "Dodaj", "alias_address": "Alias/y:", "alias_address_info": "Pełny/e adres/y email lub @example.com, aby przejąć wszystkie wiadomości dla domeny (oddzielone przecinkami). tylko domeny mailcow.", "alias_domain": "Alias domeny", @@ -219,6 +220,7 @@ "action": "Działanie", "activate": "Aktywuj", "active": "Aktywny", + "add": "Dodaj", "add_alias": "Dodaj alias", "add_domain": "Dodaj domenę", "add_domain_alias": "Dodaj alias domeny", diff --git a/data/web/lang/lang.pt.json b/data/web/lang/lang.pt.json index bad1a9ba..e791ae37 100644 --- a/data/web/lang/lang.pt.json +++ b/data/web/lang/lang.pt.json @@ -1,6 +1,7 @@ { "add": { "active": "Ativo", + "add": "Salvar", "alias_address": "Apelidos:", "alias_address_info": "Endereço de email completo ou @example.com, para uma conta coringa -catch all. (separado por vírgula). apenas domínios cadastrados.", "alias_domain": "Encaminhamento de Domínio", @@ -164,6 +165,7 @@ "mailbox": { "action": "Ação", "active": "Ativo", + "add": "Salvar", "add_alias": "Adicionar Apelido", "add_domain": "Adicionar Domínio", "add_domain_alias": "Adicionar Apelido de Domínio", diff --git a/data/web/lang/lang.ru.json b/data/web/lang/lang.ru.json index 4c85e170..be181dad 100644 --- a/data/web/lang/lang.ru.json +++ b/data/web/lang/lang.ru.json @@ -27,6 +27,7 @@ "add": { "activate_filter_warn": "Активация этого фильтра отключит все остальные фильтры этого типа.", "active": "Активный", + "add": "Добавить", "add_domain_only": "Только добавить домен", "add_domain_restart": "Добавить домен и перезапустить SOGo", "alias_address": "Псевдоним/ы", @@ -571,6 +572,7 @@ "action": "Действия", "activate": "Включить", "active": "Активный", + "add": "Добавить", "add_alias": "Добавить псевдоним", "add_bcc_entry": "Добавить правило BBC", "add_domain": "Добавить домен", diff --git a/data/web/lang/lang.sk.json b/data/web/lang/lang.sk.json index 24759993..2523a065 100644 --- a/data/web/lang/lang.sk.json +++ b/data/web/lang/lang.sk.json @@ -27,6 +27,7 @@ "add": { "activate_filter_warn": "Všetky ostatné filtre budú deaktivované, ak bude zaškrtnuté pole \"Aktívny\".", "active": "Aktívne", + "add": "Pridať", "add_domain_only": "Pridať iba doménu", "add_domain_restart": "Pridať doménu a reštartovať SOGo", "alias_address": "Alias adresa/y", @@ -567,6 +568,7 @@ "action": "Akcia", "activate": "Aktivovať", "active": "Aktívny", + "add": "Pridať", "add_alias": "Pridať alias", "add_bcc_entry": "Pridať BCC mapu", "add_domain": "Pridať doménu", diff --git a/data/web/lang/lang.sv.json b/data/web/lang/lang.sv.json index 1b8bca08..55e1a831 100644 --- a/data/web/lang/lang.sv.json +++ b/data/web/lang/lang.sv.json @@ -27,6 +27,7 @@ "add": { "activate_filter_warn": "Alla andra filter av den här typen kommer inaktiveras om det här skriptet markeras som aktivt.", "active": "Aktiv", + "add": "Lägg till", "add_domain_only": "Lägg bara till domänen", "add_domain_restart": "Lägg till domänen, och starta om SOGo", "alias_address": "Alias-adress/adresser", @@ -573,6 +574,7 @@ "action": "Åtgärd", "activate": "Aktivera", "active": "Aktiv", + "add": "Lägg till", "add_alias": "Lägg till alias", "add_bcc_entry": "Lägg till ny koppling", "add_domain": "Lägg till domän", diff --git a/data/web/mailbox.php b/data/web/mailbox.php index 2831dfac..f8313b58 100644 --- a/data/web/mailbox.php +++ b/data/web/mailbox.php @@ -93,7 +93,7 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
    @@ -256,9 +256,16 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
  • +
  • + +
    diff --git a/data/web/modals/mailbox.php b/data/web/modals/mailbox.php index 2e00a273..4f5ed4df 100644 --- a/data/web/modals/mailbox.php +++ b/data/web/modals/mailbox.php @@ -129,6 +129,9 @@ if (!isset($_SESSION['mailcow_cc_role'])) { +
    @@ -137,6 +140,9 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
    +
    @@ -177,11 +183,29 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
    + + + +
    +

    +
    @@ -289,11 +313,17 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
    +

    +
    diff --git a/docker-compose.yml b/docker-compose.yml index 5da3f419..144a4014 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -148,6 +148,7 @@ services: - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized} - SKIP_SOLR=${SKIP_SOLR:-y} - SKIP_CLAMD=${SKIP_CLAMD:-n} + - SKIP_SOGO=${SKIP_SOGO:-n} - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n} - MASTER=${MASTER:-y} restart: always @@ -157,7 +158,7 @@ services: - phpfpm sogo-mailcow: - image: mailcow/sogo:1.73 + image: mailcow/sogo:1.74 environment: - DBNAME=${DBNAME} - DBUSER=${DBUSER} @@ -169,6 +170,7 @@ services: - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n} - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1} - SOGO_EXPIRE_SESSION=${SOGO_EXPIRE_SESSION:-480} + - SKIP_SOGO=${SKIP_SOGO:-n} - MASTER=${MASTER:-y} - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-} - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-} @@ -189,7 +191,7 @@ services: - sogo dovecot-mailcow: - image: mailcow/dovecot:1.120 + image: mailcow/dovecot:1.121 depends_on: - mysql-mailcow dns: @@ -394,7 +396,7 @@ services: - /lib/modules:/lib/modules:ro watchdog-mailcow: - image: mailcow/watchdog:1.74 + image: mailcow/watchdog:1.75 # Debug #command: /watchdog.sh dns: @@ -423,6 +425,7 @@ services: - CHECK_UNBOUND=${CHECK_UNBOUND:-1} - SKIP_CLAMD=${SKIP_CLAMD:-n} - SKIP_LETS_ENCRYPT=${SKIP_LETS_ENCRYPT:-n} + - SKIP_SOGO=${SKIP_SOGO:-n} - HTTPS_PORT=${HTTPS_PORT:-443} - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-} - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-} diff --git a/generate_config.sh b/generate_config.sh index c225a255..2b8e3405 100755 --- a/generate_config.sh +++ b/generate_config.sh @@ -218,6 +218,10 @@ SKIP_HTTP_VERIFICATION=n SKIP_CLAMD=${SKIP_CLAMD} +# Skip SOGo: Will disable SOGo integration and therefore webmail, DAV protocols and ActiveSync support (experimental) - y/n + +SKIP_SOGO=n + # Skip Solr on low-memory systems or if you do not want to store a readable index of your mails in solr-vol-1. SKIP_SOLR=${SKIP_SOLR} diff --git a/update.sh b/update.sh index d1fb19f2..fab4b1c9 100755 --- a/update.sh +++ b/update.sh @@ -169,6 +169,7 @@ if cp --help 2>&1 | head -n 1 | grep -q -i "busybox"; then echo "BusybBox cp det CONFIG_ARRAY=( "SKIP_LETS_ENCRYPT" + "SKIP_SOGO" "USE_WATCHDOG" "WATCHDOG_NOTIFY_EMAIL" "WATCHDOG_NOTIFY_BAN"