diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile
index 1d8e1e5b..ae7984e3 100644
--- a/data/Dockerfiles/dovecot/Dockerfile
+++ b/data/Dockerfiles/dovecot/Dockerfile
@@ -21,6 +21,7 @@ RUN groupadd -g 5000 vmail \
&& touch /etc/default/locale \
&& apt-get update \
&& apt-get -y --no-install-recommends install \
+ build-essential \
apt-transport-https \
ca-certificates \
cpanminus \
@@ -61,6 +62,7 @@ RUN groupadd -g 5000 vmail \
libproc-processtable-perl \
libreadonly-perl \
libregexp-common-perl \
+ libssl-dev \
libsys-meminfo-perl \
libterm-readkey-perl \
libtest-deep-perl \
@@ -110,6 +112,8 @@ RUN groupadd -g 5000 vmail \
&& apt-get autoclean \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/* /var/tmp/* /root/.cache/
+# imapsync dependencies
+RUN cpan Crypt::OpenSSL::PKCS12
COPY trim_logs.sh /usr/local/bin/trim_logs.sh
COPY clean_q_aged.sh /usr/local/bin/clean_q_aged.sh
diff --git a/data/Dockerfiles/dovecot/imapsync b/data/Dockerfiles/dovecot/imapsync
index 0d34504e..de63d658 100755
--- a/data/Dockerfiles/dovecot/imapsync
+++ b/data/Dockerfiles/dovecot/imapsync
@@ -8492,6 +8492,7 @@ sub xoauth2
require HTML::Entities ;
require JSON ;
require JSON::WebToken::Crypt::RSA ;
+ require Crypt::OpenSSL::PKCS12;
require Crypt::OpenSSL::RSA ;
require Encode::Byte ;
require IO::Socket::SSL ;
@@ -8532,8 +8533,9 @@ sub xoauth2
$sync->{ debug } and myprint( "Service account: $iss\nKey file: $keyfile\nKey password: $keypass\n");
- # Get private key from p12 file (would be better in perl...)
- $key = `openssl pkcs12 -in "$keyfile" -nodes -nocerts -passin pass:$keypass -nomacver`;
+ # Get private key from p12 file
+ my $pkcs12 = Crypt::OpenSSL::PKCS12->new_from_file($keyfile);
+ $key = $pkcs12->private_key($keypass);
$sync->{ debug } and myprint( "Private key:\n$key\n");
}
diff --git a/data/conf/rspamd/local.d/multimap.conf b/data/conf/rspamd/local.d/multimap.conf
index 3f554c5b..888bf363 100644
--- a/data/conf/rspamd/local.d/multimap.conf
+++ b/data/conf/rspamd/local.d/multimap.conf
@@ -159,8 +159,8 @@ BAZAAR_ABUSE_CH {
}
URLHAUS_ABUSE_CH {
- type = "url";
- filter = "full";
+ type = "selector";
+ selector = "urls";
map = "https://urlhaus.abuse.ch/downloads/text_online/";
score = 10.0;
}
diff --git a/data/web/lang/lang.da-dk.json b/data/web/lang/lang.da-dk.json
index 18080080..6ff8e9b7 100644
--- a/data/web/lang/lang.da-dk.json
+++ b/data/web/lang/lang.da-dk.json
@@ -4,15 +4,15 @@
"app_passwds": "Administrer app-adgangskoder",
"bcc_maps": "BCC kort",
"delimiter_action": "Afgrænsning handling",
- "eas_reset": "Nulstil EAS endheder",
+ "eas_reset": "Nulstil EAS enheder",
"extend_sender_acl": "Tillad at udvide afsenderens ACL med eksterne adresser",
"filters": "Filtre",
"login_as": "Login som mailboks bruger",
- "prohibited": "Forbudt af ACL",
- "protocol_access": "Ændre protokol adgang",
+ "prohibited": "Nægtet af ACL",
+ "protocol_access": "Skift protokol adgang",
"pushover": "Pushover",
- "quarantine": "Karantæneaktioner",
- "quarantine_attachments": "Karantæne vedhæftede filer",
+ "quarantine": "Karantænehandlinger",
+ "quarantine_attachments": "Karantænevedhæftede filer",
"quarantine_notification": "Skift karantænemeddelelser",
"ratelimit": "Satsgrænse",
"recipient_maps": "Modtagerkort",
@@ -20,12 +20,15 @@
"sogo_access": "Tillad styring af SOGo-adgang",
"sogo_profile_reset": "Nulstil SOGo-profil",
"spam_alias": "Midlertidige aliasser",
- "spam_policy": "Sortliste / hvidliste",
+ "spam_policy": "Sortliste/hvidliste",
"spam_score": "Spam-score",
"syncjobs": "Synkroniserings job",
"tls_policy": "TLS politik",
"unlimited_quota": "Ubegrænset plads for mailbokse",
- "domain_desc": "Skift domæne beskrivelse"
+ "domain_desc": "Skift domæne beskrivelse",
+ "domain_relayhost": "Skift relæ host for et domæne",
+ "mailbox_relayhost": "Skift relæ-host for en postkasse",
+ "quarantine_category": "Skift kategorien for karantænemeddelelse"
},
"add": {
"activate_filter_warn": "Alle andre filtre deaktiveres, når aktiv er markeret.",
@@ -59,7 +62,7 @@
"gal": "Global adresseliste",
"gal_info": "GAL indeholder alle objekter i et domæne og kan ikke redigeres af nogen bruger. Information om ledig / optaget i SOGo mangler, hvis deaktiveret! Genstart SOGo for at anvende ændringer. ",
"generate": "generere",
- "goto_ham": "Lær som ham",
+ "goto_ham": "Lær som ønsket",
"goto_null": "Kassér e-mail i stilhed",
"goto_spam": "Lær som spam",
"hostname": "Vært",
@@ -308,7 +311,9 @@
"username": "Brugernavn",
"validate_license_now": "Valider GUID mod licensserver",
"verify": "Verificere",
- "yes": "✓"
+ "yes": "✓",
+ "ip_check_opt_in": "Opt-In for brug af tredjepartstjeneste ipv4.mailcow.email og ipv6.mailcow.email til at finde eksterne IP-adresser.",
+ "queue_unban": "unban"
},
"danger": {
"access_denied": "Adgang nægtet eller ugyldig formular data",
@@ -425,7 +430,8 @@
"username_invalid": "Brugernavn %s kan ikke bruges",
"validity_missing": "Tildel venligst en gyldighedsperiode",
"value_missing": "Angiv alle værdier",
- "yotp_verification_failed": "Yubico OTP verifikationen mislykkedes: %s"
+ "yotp_verification_failed": "Yubico OTP verifikationen mislykkedes: %s",
+ "webauthn_publickey_failed": "Der er ikke gemt nogen offentlig nøgle for den valgte autentifikator"
},
"debug": {
"chart_this_server": "Diagram (denne server)",
@@ -442,7 +448,8 @@
"solr_status": "Solr-status",
"started_on": "Startede den",
"static_logs": "Statiske logfiler",
- "system_containers": "System og Beholdere"
+ "system_containers": "System og Beholdere",
+ "error_show_ip": "Kunne ikke finde de offentlige IP-adresser"
},
"diagnostics": {
"cname_from_a": "Værdi afledt af A / AAAA-post. Dette understøttes, så længe posten peger på den korrekte ressource.",
@@ -553,7 +560,11 @@
"title": "Rediger objekt",
"unchanged_if_empty": "Lad være tomt, hvis uændret",
"username": "Brugernavn",
- "validate_save": "Valider og gem"
+ "validate_save": "Valider og gem",
+ "admin": "Rediger administrator",
+ "lookup_mx": "Destination er et regulært udtryk, der matcher MX-navnet (.*google\\.dk
for at dirigere al e-mail, der er målrettet til en MX, der ender på google.dk, over dette hop)",
+ "mailbox_relayhost_info": "Anvendt på postkassen og kun direkte aliasser, og overskriver et domæne relæ-host.",
+ "quota_warning_bcc": "Kvoteadvarsel BCC"
},
"footer": {
"cancel": "Afbestille",
@@ -571,7 +582,7 @@
"header": {
"administration": "Konfiguration og detailer",
"apps": "Apps",
- "debug": "Systemoplysninger",
+ "debug": "Information",
"email": "E-Mail",
"mailcow_config": "Konfiguration",
"quarantine": "Karantæne",
@@ -739,7 +750,10 @@
"username": "Brugernavn",
"waiting": "Venter",
"weekly": "Ugentlig",
- "yes": "✓"
+ "yes": "✓",
+ "goto_ham": "Lær som ønsket",
+ "catch_all": "Fang-alt",
+ "open_logs": "Åben logfiler"
},
"oauth2": {
"access_denied": "Log ind som mailboks ejer for at give adgang via OAuth2.",
@@ -1066,5 +1080,11 @@
"quota_exceeded_scope": "Domænekvote overskredet: Kun ubegrænsede postkasser kan oprettes i dette domæneomfang.",
"session_token": "Form nøgle ugyldig: Nøgle passer ikke",
"session_ua": "Form nøgle ugyldig: Bruger-Agent gyldighedskontrols fejl"
+ },
+ "datatables": {
+ "lengthMenu": "Vis _MENU_ poster",
+ "paginate": {
+ "first": "Først"
+ }
}
}
diff --git a/data/web/lang/lang.pl-pl.json b/data/web/lang/lang.pl-pl.json
index b2862d8e..aa185d32 100644
--- a/data/web/lang/lang.pl-pl.json
+++ b/data/web/lang/lang.pl-pl.json
@@ -1,7 +1,8 @@
{
"acl": {
"sogo_profile_reset": "Usuń profil SOGo (webmail)",
- "syncjobs": "Polecenie synchronizacji"
+ "syncjobs": "Polecenie synchronizacji",
+ "alias_domains": "Dodaj aliasy domen"
},
"add": {
"active": "Aktywny",
diff --git a/data/web/templates/debug.twig b/data/web/templates/debug.twig
index 006703fb..d24d7ed6 100644
--- a/data/web/templates/debug.twig
+++ b/data/web/templates/debug.twig
@@ -612,7 +612,7 @@
{{ lang.admin.hash_remove_info }}
+{{ lang.admin.hash_remove_info|raw }}