1
0
mirror of https://github.com/mailcow/mailcow-dockerized.git synced 2024-12-23 02:04:46 +02:00

Merge branch 'staging' into nightly

This commit is contained in:
FreddleSpl0it 2024-09-05 14:53:37 +02:00
commit 0d2046baeb
No known key found for this signature in database
GPG Key ID: 00E14E7634F4BEC5
15 changed files with 255 additions and 66 deletions

View File

@ -22,7 +22,7 @@ jobs:
bash helper-scripts/update_postscreen_whitelist.sh
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.mailcow_action_Update_postscreen_access_cidr_pat }}
commit-message: update postscreen_access.cidr

View File

@ -10,16 +10,25 @@ done
# Do not attempt to write to slave
if [[ ! -z ${REDIS_SLAVEOF_IP} ]]; then
REDIS_CMDLINE="redis-cli -h ${REDIS_SLAVEOF_IP} -p ${REDIS_SLAVEOF_PORT}"
REDIS_HOST=$REDIS_SLAVEOF_IP
REDIS_PORT=$REDIS_SLAVEOF_PORT
else
REDIS_CMDLINE="redis-cli -h redis -p 6379"
REDIS_HOST="redis"
REDIS_PORT="6379"
fi
REDIS_CMDLINE="redis-cli -h ${REDIS_HOST} -p ${REDIS_PORT}"
until [[ $(${REDIS_CMDLINE} PING) == "PONG" ]]; do
echo "Waiting for Redis..."
sleep 2
done
# Set redis session store
echo -n '
session.save_handler = redis
session.save_path = "tcp://'${REDIS_HOST}':'${REDIS_PORT}'"
' > /usr/local/etc/php/conf.d/session_store.ini
# Check mysql_upgrade (master and slave)
CONTAINER_ID=
until [[ ! -z "${CONTAINER_ID}" ]] && [[ "${CONTAINER_ID}" =~ ^[[:alnum:]]*$ ]]; do

View File

@ -10,6 +10,8 @@ if [[ ! -z ${REDIS_SLAVEOF_IP} ]]; then
cp /etc/syslog-ng/syslog-ng-redis_slave.conf /etc/syslog-ng/syslog-ng.conf
fi
echo "$TZ" > /etc/timezone
# Run hooks
for file in /hooks/*; do
if [ -x "${file}" ]; then

View File

@ -1,6 +1,6 @@
# Whitelist generated by Postwhite v3.4 on Thu Aug 1 00:16:45 UTC 2024
# Whitelist generated by Postwhite v3.4 on Sun Sep 1 00:19:07 UTC 2024
# https://github.com/stevejenkins/postwhite/
# 1954 total rules
# 1994 total rules
2a00:1450:4000::/36 permit
2a01:111:f400::/48 permit
2a01:111:f403:8000::/50 permit
@ -19,6 +19,8 @@
8.20.114.31 permit
8.25.194.0/23 permit
8.25.196.0/23 permit
8.39.54.0/23 permit
8.40.222.0/23 permit
10.162.0.0/16 permit
12.130.86.238 permit
13.110.208.0/21 permit
@ -200,6 +202,7 @@
52.96.91.34 permit
52.96.111.82 permit
52.96.172.98 permit
52.96.214.50 permit
52.96.222.194 permit
52.96.222.226 permit
52.96.223.2 permit
@ -324,6 +327,7 @@
65.110.161.77 permit
65.123.29.213 permit
65.123.29.220 permit
65.154.166.0/24 permit
65.212.180.36 permit
66.102.0.0/20 permit
66.119.150.192/26 permit
@ -1283,6 +1287,9 @@
117.120.16.0/21 permit
119.42.242.52/31 permit
119.42.242.156 permit
121.244.91.48 permit
121.244.91.52 permit
122.15.156.182 permit
123.126.78.64/29 permit
124.108.96.24/31 permit
124.108.96.28/31 permit
@ -1338,7 +1345,18 @@
134.170.141.64/26 permit
134.170.143.0/24 permit
134.170.174.0/24 permit
135.84.80.0/24 permit
135.84.81.0/24 permit
135.84.82.0/24 permit
135.84.83.0/24 permit
135.84.216.0/22 permit
136.143.160.0/24 permit
136.143.161.0/24 permit
136.143.178.49 permit
136.143.182.0/23 permit
136.143.184.0/24 permit
136.143.188.0/24 permit
136.143.190.0/23 permit
136.147.128.0/20 permit
136.147.135.0/24 permit
136.147.176.0/20 permit
@ -1353,6 +1371,7 @@
139.138.46.219 permit
139.138.57.55 permit
139.138.58.119 permit
139.167.79.86 permit
139.180.17.0/24 permit
141.148.159.229 permit
141.193.32.0/23 permit
@ -1452,7 +1471,9 @@
163.114.132.120 permit
163.114.134.16 permit
163.114.135.16 permit
164.152.23.32 permit
164.177.132.168/30 permit
165.173.128.0/24 permit
166.78.68.0/22 permit
166.78.68.221 permit
166.78.69.169 permit
@ -1480,9 +1501,16 @@
168.245.12.252 permit
168.245.46.9 permit
168.245.127.231 permit
169.148.129.0/24 permit
169.148.131.0/24 permit
169.148.142.10 permit
169.148.144.0/25 permit
169.148.144.10 permit
170.10.68.0/22 permit
170.10.128.0/24 permit
170.10.129.0/24 permit
170.10.132.56/29 permit
170.10.132.64/29 permit
170.10.133.0/24 permit
172.217.0.0/19 permit
172.217.32.0/20 permit
@ -1634,7 +1662,15 @@
199.16.156.0/22 permit
199.33.145.1 permit
199.33.145.32 permit
199.34.22.36 permit
199.59.148.0/22 permit
199.67.80.2 permit
199.67.80.20 permit
199.67.82.2 permit
199.67.82.20 permit
199.67.84.0/24 permit
199.67.86.0/24 permit
199.67.88.0/24 permit
199.101.161.130 permit
199.101.162.0/25 permit
199.122.120.0/21 permit
@ -1691,6 +1727,8 @@
204.92.114.187 permit
204.92.114.203 permit
204.92.114.204/31 permit
204.141.32.0/23 permit
204.141.42.0/23 permit
204.220.160.0/20 permit
204.232.168.0/24 permit
205.139.110.0/24 permit
@ -1942,6 +1980,8 @@
2603:1030:20e:3::23c permit
2603:1030:b:3::152 permit
2603:1030:c02:8::14 permit
2607:13c0:0001:0000:0000:0000:0000:7000/116 permit
2607:13c0:0002:0000:0000:0000:0000:1000/116 permit
2607:f8b0:4000::/36 permit
2620:109:c003:104::/64 permit
2620:109:c003:104::215 permit

View File

@ -4699,6 +4699,9 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
}
else if ($SaslLogs['service'] == 'pop3') {
$last_pop3_login = strtotime($SaslLogs['datetime']);
}
else if ($SaslLogs['service'] == 'SSO') {
$last_sso_login = strtotime($SaslLogs['datetime']);
}
}
if (!isset($last_imap_login) || $GLOBALS['SHOW_LAST_LOGIN'] === false) {
@ -4709,10 +4712,14 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
}
if (!isset($last_pop3_login) || $GLOBALS['SHOW_LAST_LOGIN'] === false) {
$last_pop3_login = 0;
}
if (!isset($last_sso_login) || $GLOBALS['SHOW_LAST_LOGIN'] === false) {
$last_sso_login = 0;
}
$mailboxdata['last_imap_login'] = $last_imap_login;
$mailboxdata['last_smtp_login'] = $last_smtp_login;
$mailboxdata['last_pop3_login'] = $last_pop3_login;
$mailboxdata['last_sso_login'] = $last_sso_login;
if (!isset($_extra) || $_extra != 'reduced') {
$rl = ratelimit('get', 'mailbox', $_data);

View File

@ -893,7 +893,7 @@ jQuery(function($){
item.quota.value = humanFileSize(item.quota_used) + "/" + item.quota.value;
item.max_quota_for_mbox = humanFileSize(item.max_quota_for_mbox);
item.last_mail_login = item.last_imap_login + '/' + item.last_pop3_login + '/' + item.last_smtp_login;
item.last_mail_login = item.last_imap_login + '/' + item.last_pop3_login + '/' + item.last_smtp_login + '/' + item.last_sso_login;
/*
if (!item.rl) {
item.rl = '∞';
@ -1012,9 +1012,10 @@ jQuery(function($){
responsivePriority: 7,
render: function (data, type) {
res = data.split("/");
return '<div class="badge bg-info mb-2">IMAP @ ' + unix_time_format(Number(res[0])) + '</div><br>' +
'<div class="badge bg-info mb-2">POP3 @ ' + unix_time_format(Number(res[1])) + '</div><br>' +
'<div class="badge bg-info">SMTP @ ' + unix_time_format(Number(res[2])) + '</div>';
return '<div class="text-start badge bg-info mb-2" style="min-width: 70px;">IMAP @ ' + unix_time_format(Number(res[0])) + '</div><br>' +
'<div class="text-start badge bg-info mb-2" style="min-width: 70px;">POP3 @ ' + unix_time_format(Number(res[1])) + '</div><br>' +
'<div class="text-start badge bg-info mb-2" style="min-width: 70px;">SMTP @ ' + unix_time_format(Number(res[2])) + '</div><br>' +
'<div class="text-start badge bg-info" style="min-width: 70px;">SSO @ ' + unix_time_format(Number(res[3])) + '</div>';
}
},
{

View File

@ -28,7 +28,8 @@
"spam_score": "Skóre spamu",
"syncjobs": "Synchronizační úlohy",
"tls_policy": "Pravidla TLS",
"unlimited_quota": "Neomezené kvóty pro mailové schránky"
"unlimited_quota": "Neomezené kvóty pro mailové schránky",
"pw_reset": "Povolit obnovení hesla uživatele mailcow"
},
"add": {
"activate_filter_warn": "Pokud je zaškrtlá volba \"Aktivní\", budou všechny ostatní filtry deaktivovány.",
@ -346,7 +347,14 @@
"f2b_ban_time_increment": "Délka banu je prodlužována s každým dalším banem",
"f2b_max_ban_time": "Maximální délka banu (s)",
"cors_settings": "Nastavení CORS",
"queue_unban": "zrušit ban"
"queue_unban": "zrušit ban",
"password_reset_info": "Pokud není zadán žádný e-mail pro obnovení, nelze tuto funkci použít.",
"password_reset_settings": "Nastavení obnovení hesla",
"password_settings": "Nastavení hesel",
"password_reset_tmpl_html": "HTML šablona",
"password_reset_tmpl_text": "Textová šablona",
"reset_password_vars": "<code>{{link}}</code> Vygenerovaný odkaz pro obnovení hesla<br><code>{{username}}</code> Název mailboxu uživatele, který požádal o resetování hesla.<br><code>{{username2}}</code> Název schránky pro obnovení<br><code>{{date}}</code> Datum podání žádosti o obnovení hesla<br><code>{{token_lifetime}}</code> Délka životnosti tokenu v minutách<br><code>{{hostname}}</code> Název serveru mailcow",
"restore_template": "Ponechte prázdné pro obnovení výchozí šablony."
},
"danger": {
"access_denied": "Přístup odepřen nebo jsou neplatná data ve formuláři",
@ -475,7 +483,10 @@
"webauthn_publickey_failed": "Pro vybraný ověřovací prostředek nebyl uložen žádný veřejný klíč",
"webauthn_username_failed": "Zvolený ověřovací prostředek patří k jinému účtu",
"extended_sender_acl_denied": "chybějící ACL pro nastavení externích adres odesílatele",
"demo_mode_enabled": "Demo režim je zapnutý"
"demo_mode_enabled": "Demo režim je zapnutý",
"recovery_email_failed": "Nepodařilo se odeslat e-mail pro obnovení. Obraťte se prosím na svého správce.",
"password_reset_invalid_user": "Mailbox nebyl nalezen nebo není nastaven žádný e-mail pro obnovu",
"password_reset_na": "Obnovení hesla není v současné době k dispozici. Obraťte se prosím na svého správce."
},
"datatables": {
"emptyTable": "Tabulka neobsahuje žádná data",
@ -672,12 +683,17 @@
"auth_user": "{= auth_user =} - Ověřené uživatelské jméno zadané MTA",
"from_user": "{= from_user =} - uživatelská část odesílatele, např. pro \"moo@mailcow.tld\" vrátí \"moo\"",
"from_domain": "{= from_domain =} - Doména odesílatele",
"from_addr": "{= from_addr =} - E-mailová adresa odesílatele"
"from_addr": "{= from_addr =} - E-mailová adresa odesílatele",
"custom": "{= foo =} - Pokud má schránka vlastní atribut „foo“ s hodnotou „bar“, vrátí „bar“"
},
"domain_footer": "Patička pro celou doménu",
"domain_footer_html": "HTML text",
"domain_footer_plain": "Prostý text",
"pushover_sound": "Zvukové upozornění"
"pushover_sound": "Zvukové upozornění",
"custom_attributes": "Vlastní atributy",
"footer_exclude": "Vyloučit ze zápatí",
"domain_footer_skip_replies": "Ignorovat patičku u odpovědí na e-maily",
"password_recovery_email": "E-mail pro obnovu hesla"
},
"fido2": {
"confirm": "Potvrdit",
@ -733,7 +749,14 @@
"mobileconfig_info": "Ke stažení profilového souboru se přihlaste jako uživatel schránky.",
"other_logins": "Přihlášení klíčem",
"password": "Heslo",
"username": "Uživatelské jméno"
"username": "Uživatelské jméno",
"back_to_mailcow": "Zpět do mailcow",
"forgot_password": "> Zapomněli jste heslo?",
"invalid_pass_reset_token": "Token pro obnovení hesla je neplatný nebo jeho platnost vypršela.<br>Prosím, vyžádejte si nový odkaz pro obnovení hesla.",
"new_password": "Nové heslo",
"new_password_confirm": "Ověření nového hesla",
"reset_password": "Obnovit heslo",
"request_reset_password": "Požádat o změnu hesla"
},
"mailbox": {
"action": "Akce",
@ -1081,7 +1104,8 @@
"verified_webauthn_login": "WebAuthn přihlášení ověřeno",
"verified_yotp_login": "Yubico OTP přihlášení ověřeno",
"cors_headers_edited": "Nastavení CORS byla uložena",
"domain_footer_modified": "Změny patičky domény %s byly uloženy"
"domain_footer_modified": "Změny patičky domény %s byly uloženy",
"recovery_email_sent": "E-mail k obnovení byl odeslán na adresu %s"
},
"tfa": {
"api_register": "%s používá Yubico Cloud API. Prosím získejte API klíč pro své Yubico <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ZDE</a>",
@ -1268,7 +1292,9 @@
"with_app_password": "s heslem aplikace",
"year": "rok",
"years": "let",
"pushover_sound": "Zvukové upozornění"
"pushover_sound": "Zvukové upozornění",
"password_reset_info": "Pokud není zadán e-mail pro obnovení hesla, nelze tuto funkci použít.",
"pw_recovery_email": "E-mail pro obnovení hesla"
},
"warning": {
"cannot_delete_self": "Nelze smazat právě přihlášeného uživatele",

View File

@ -267,7 +267,11 @@
"upload": "Lataa",
"username": "Käyttäjätunnus",
"validate_license_now": "Vahvista GUID-tunnus lisenssi palvelinta vastaan",
"yes": "&#10003;"
"yes": "&#10003;",
"allowed_methods": "Kulunvalvonta-salli-menetelmät",
"admins": "Järjestelmänvalvojat",
"admins_ldap": "LDAP-ylläpitäjät",
"advanced_settings": "Lisäasetukset"
},
"danger": {
"access_denied": "Käyttö estetty tai lomake tiedot eivät kelpaa",

View File

@ -28,7 +28,8 @@
"unlimited_quota": "Quota illimité pour les boîtes de réception",
"domain_desc": "Modifier la description du domaine",
"domain_relayhost": "Changer le relais pour un domaine",
"mailbox_relayhost": "Changer le relais d’une boîte de réception"
"mailbox_relayhost": "Changer le relais d’une boîte de réception",
"pw_reset": "Autoriser la réinitialisation du mot de passe de l'utilisateur"
},
"add": {
"activate_filter_warn": "Tous les autres filtres seront désactivés, quand activé est coché.",
@ -343,7 +344,15 @@
"f2b_manage_external": "Gérer Fail2Ban en externe",
"transport_test_rcpt_info": "&#8226 ; Utilisez null@hosted.mailcow.de pour tester le relais vers une destination étrangère.",
"relay_rcpt": "Adresse \"À :\"",
"is_mx_based": "Basé sur MX"
"is_mx_based": "Basé sur MX",
"password_reset_info": "Si aucune adresse de messagerie de récupération n'est fournie, cette fonction ne peut pas être utilisée.",
"password_settings": "Paramètres des mots de passe",
"reset_password_vars": "<code>{{link}}</code> Le lien généré pour la réinitialisation du mot de passe<br><code>{{username}}</code> L'adresse de la boîte mail de l'utilisateur qui a demandé la réinitialisation du mot de passe ayant un compte mailcow<br><code>{{username2}}</code> L'adresse de la boîte mail de récupération<br><code>{{date}}</code> La date à laquelle la demande de réinitialisation du mot de passe a été faite<br><code>{{token_lifetime}}</code> La durée de vie du jeton en minutes<br><code>{{hostname}}</code> Le nom d'hôte de votre serveur mailcow",
"password_reset_settings": "Paramètres de récupération des mots de passe",
"password_reset_tmpl_html": "Modèle HTML",
"password_reset_tmpl_text": "Modèle en texte",
"restore_template": "Laisser vide pour restaurer le modèle par défaut.",
"admins_ldap": "Si aucune adresse de messagerie de récupération n'est fournie, cette fonction ne peut pas être utilisée."
},
"danger": {
"access_denied": "Accès refusé ou données de formulaire non valides",
@ -474,7 +483,13 @@
"cors_invalid_method": "Allow-Method specifiée invalide",
"cors_invalid_origin": "Allow-Origin spécifiée invalide",
"extended_sender_acl_denied": "ACL manquante pour définir les adresses des expéditeurs externes",
"webauthn_username_failed": "L'authentificateur sélectionné appartient à un autre compte"
"webauthn_username_failed": "L'authentificateur sélectionné appartient à un autre compte",
"recovery_email_failed": "Impossible d'envoyer un email de réinitialisation. Veuillez contacter votre administrateur.",
"invalid_reset_token": "Jeton de réinitialisation invalide",
"password_reset_invalid_user": "Boîte mail introuvable ou aucune adresse de récupération n'a été définie",
"password_reset_na": "La réinitialisation des mots de passe est actuellement indisponible. Veuillez contacter votre administrateur.",
"reset_token_limit_exceeded": "Le nombre limite de jetons de réinitialisation a été dépassé. Veuillez réessayer plus tard.",
"to_invalid": "Le destinataire ne doit pas être vide"
},
"debug": {
"chart_this_server": "Graphique (ce serveur)",
@ -641,8 +656,9 @@
"none_inherit": "Aucun / Héritage",
"quota_warning_bcc": "Avertissement sur les quotas BCC",
"quota_warning_bcc_info": "Les avertissements seront envoyés en copies séparées aux destinataires suivants. Le sujet sera précédé du nom d'utilisateur correspondant entre parenthèses, par exemple : <code>Avertissement sur les quotas (user@example.com)</code>.",
"sogo_access_info": "L'authentification unique à partir de l'interface de messagerie reste opérationnelle. Ce paramètre n'affecte pas l'accès à tous les autres services et ne supprime ni ne modifie le profil SOGo existant d'un utilisateur.",
"admin": "Modifier l'administrateur"
"sogo_access_info": "L'authentification unique à partir de l'interface de messagerie reste opérationnelle. Ce paramètre n'affecte pas l'accès à tous les autres services et ne supprime ni, ne modifie le profil SOGo existant d'un utilisateur.",
"admin": "Modifier l'administrateur",
"password_recovery_email": "Adresse email de récupération"
},
"footer": {
"cancel": "Annuler",
@ -681,7 +697,14 @@
"mobileconfig_info": "Veuillez vous connecter en tant qu’utilisateur de la boîte de réception pour télécharger le profil de connexion Apple demandé.",
"other_logins": "Clé d'authentification",
"password": "Mot de passe",
"username": "Nom d'utilisateur"
"username": "Nom d'utilisateur",
"back_to_mailcow": "Revenir sur mailcow",
"forgot_password": "> Mot de passe oublié ?",
"invalid_pass_reset_token": "Le jeton de réinitialisation du mot de passe est invalide ou a expiré.<br>Veuillez demander un nouveau lien de réinitialisation de mot de passe.",
"new_password": "Nouveau mot de passe",
"new_password_confirm": "Confirmer le nouveau mot de passe",
"reset_password": "Réinitialiser le mot de passe",
"request_reset_password": "Demander le changement du mot de passe"
},
"mailbox": {
"action": "Action",
@ -1004,7 +1027,9 @@
"template_added": "Modèles ajoutés %s",
"template_removed": "Le modèle ayant l'ID %s a été supprimé",
"domain_add_dkim_available": "A DKIM key did already exist",
"ip_check_opt_in_modified": "Le contrôle de l'IP a été enregistré avec succès"
"ip_check_opt_in_modified": "Le contrôle de l'IP a été enregistré avec succès",
"password_changed_success": "Le mot de passe a été modifié avec succès",
"recovery_email_sent": "Email de réinitialisation envoyé à %s"
},
"tfa": {
"api_register": "%s utilise l'API Yubico Cloud. Veuillez obtenir une clé API pour votre clé <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">ici</a>",
@ -1202,7 +1227,9 @@
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "Nom d'utilisateur ou mot de passe incorrect",
"value": "Valeur",
"allowed_protocols": "Protocoles autorisés",
"mailbox": "Boîte de réception"
"mailbox": "Boîte de réception",
"password_reset_info": "Si aucun email pour la récupération du mot de passe n'est fourni, cette fonction ne peut pas être utilisée.",
"pw_recovery_email": "Email de récupération pour son mot de passe"
},
"warning": {
"cannot_delete_self": "Impossible de supprimer l’utilisateur connecté",
@ -1234,7 +1261,8 @@
"lengthMenu": "Afficher les entrées _MENU_",
"loadingRecords": "Chargement…",
"processing": "Veuillez patienter…",
"collapse_all": "Tout réduire"
"collapse_all": "Tout réduire",
"info": "Affichage de _START_ de _END_ sur _TOTAL_ entrées"
},
"ratelimit": {
"disabled": "Désactivé"

View File

@ -28,7 +28,8 @@
"spam_score": "Punteggio SPAM",
"syncjobs": "Processi di sync",
"tls_policy": "Politica TLS",
"unlimited_quota": "Spazio illimitato per le caselle di posta"
"unlimited_quota": "Spazio illimitato per le caselle di posta",
"pw_reset": "Permettere di reimpostare la password dell'utente mailcow"
},
"add": {
"activate_filter_warn": "Tutti gli altri filtri saranno disattivati, quando è attivo.",
@ -116,7 +117,7 @@
"activate_api": "Attiva API",
"activate_send": "Attiva bottone di invio",
"active": "Attiva",
"active_rspamd_settings_map": "Active settings map",
"active_rspamd_settings_map": "Mappa delle impostazioni attive",
"add": "Aggiungi",
"add_admin": "Aggiungi amministratore",
"add_domain_admin": "Aggiungi amministratore di dominio",
@ -124,7 +125,7 @@
"add_relayhost": "Add sender-dependent transport",
"add_relayhost_hint": "Tieni presente che i dati di autenticazione, se presenti, verranno archiviati come testo semplice.",
"add_row": "Aggiungi riga",
"add_settings_rule": "Add settings rule",
"add_settings_rule": "Aggiungi regola delle impostazioni",
"add_transport": "Aggiungi transport",
"add_transports_hint": "Tieni presente che i dati di autenticazione, se presenti, verranno archiviati come testo semplice.",
"additional_rows": " righe aggiuntive inserite",
@ -134,7 +135,7 @@
"admins": "Amministratori",
"admins_ldap": "Amministratori LDAP",
"advanced_settings": "Impostazioni avanzate",
"api_allow_from": "Allow API access from these IPs/CIDR network notations",
"api_allow_from": "Consenti l'accesso API da questi indirizzi IP/notazione di rete CIDR",
"api_info": "Questa API è in modifica. La documentazione può essere trovata su <a href=\"/api\">/api</a>",
"api_key": "Chiave API",
"api_skip_ip_check": "Salta il controllo dell'IP per l'API",
@ -156,7 +157,7 @@
"dkim_domains_selector": "Selettore",
"dkim_domains_wo_keys": "Seleziona i domini senza chiavi",
"dkim_from": "Da",
"dkim_from_title": "Source domain to copy data from",
"dkim_from_title": "Dominio di origine da cui copiare i dati",
"dkim_key_length": "Lunghezza chiave DKIM (bits)",
"dkim_key_missing": "Chiave mancante",
"dkim_key_unused": "Chiave non usata",
@ -182,8 +183,8 @@
"f2b_list_info": "Un host oppure una rete in blacklist, avrà sempre un peso maggiore rispetto ad una in whitelist. <b>L'aggiornamento della lista richiede alcuni secondi per la sua entrata in azione.</b>",
"f2b_max_attempts": "Tentativi massimi",
"f2b_max_ban_time": "Tempo massimo di blocco (s)",
"f2b_netban_ipv4": "IPv4 subnet size to apply ban on (8-32)",
"f2b_netban_ipv6": "IPv6 subnet size to apply ban on (8-128)",
"f2b_netban_ipv4": "Dimensione della subnet IPv4 su cui applicare il blocco (8-32)",
"f2b_netban_ipv6": "Dimensione della subnet IPv6 su cui applicare il blocco (8-128)",
"f2b_parameters": "Parametri Fail2ban",
"f2b_regex_info": "Log presi in considerazione: SOGo, Postfix, Dovecot, PHP-FPM.",
"f2b_retry_window": "Retry window (s) for max. attempts",
@ -219,16 +220,16 @@
"merged_vars_hint": "Greyed out rows were merged from <code>vars.(local.)inc.php</code> and cannot be modified.",
"message": "Messaggio",
"message_size": "Dimensione mesaggio",
"nexthop": "Next hop",
"nexthop": "Prossimo hop",
"no": "&#10005;",
"no_active_bans": "Nessun ban attivo",
"no_new_rows": "Nessuna ulteriore riga disponibile",
"no_record": "Nessun risultato",
"oauth2_client_id": "ID cliente",
"oauth2_client_secret": "Client secret",
"oauth2_client_secret": "Chiave segreta del client",
"oauth2_info": "The OAuth2 implementation supports the grant type \"Authorization Code\" and issues refresh tokens.<br>\r\nThe server also automatically issues new refresh tokens, after a refresh token has been used.<br><br>\r\n&#8226; The default scope is <i>profile</i>. Only mailbox users can be authenticated against OAuth2. If the scope parameter is omitted, it falls back to <i>profile</i>.<br>\r\n&#8226; The <i>state</i> parameter is required to be sent by the client as part of the authorize request.<br><br>\r\nPaths for requests to the OAuth2 API: <br>\r\n<ul>\r\n <li>Authorization endpoint: <code>/oauth/authorize</code></li>\r\n <li>Token endpoint: <code>/oauth/token</code></li>\r\n <li>Resource page: <code>/oauth/profile</code></li>\r\n</ul>\r\nRegenerating the client secret will not expire existing authorization codes, but they will fail to renew their token.<br><br>\r\nRevoking client tokens will cause immediate termination of all active sessions. All clients need to re-authenticate.",
"oauth2_redirect_uri": "URI di reindirizzamento",
"oauth2_renew_secret": "Generate new client secret",
"oauth2_renew_secret": "Genera una nuova chiave segreta per il client",
"oauth2_revoke_tokens": "Revoca tutti i token del client",
"optional": "facoltativo",
"password": "Password",
@ -269,7 +270,7 @@
"recipients": "Destinatari",
"refresh": "Aggiorna",
"regen_api_key": "Rinnova la chiave delle API",
"regex_maps": "Regex maps",
"regex_maps": "Mappe Regex",
"relay_from": "\"Da:\" indirizzi",
"relay_rcpt": "\"A:\" indirizzi",
"relay_run": "Esegui test",
@ -286,7 +287,7 @@
"rsetting_no_selection": "Seleziona una regola",
"rsetting_none": "Nessuna regola presente",
"rsettings_insert_preset": "Insert example preset \"%s\"",
"rsettings_preset_1": "Disable all but DKIM and rate limit for authenticated users",
"rsettings_preset_1": "Disattivare tutto tranne DKIM e il limite di velocità per gli utenti autenticati",
"rsettings_preset_2": "I postmaster vogliono lo spam",
"rsettings_preset_3": "Consenti solo mittenti specifici per una casella di posta (ad esempio: utilizzo solo come casella di posta interna)",
"rspamd_com_settings": "A setting name will be auto-generated, please see the example presets below. For more details see <a href=\"https://rspamd.com/doc/configuration/settings.html#settings-structure\" target=\"_blank\">Rspamd docs</a>",
@ -341,7 +342,18 @@
"rsettings_preset_4": "Disattivare Rspamd per un dominio",
"options": "Opzioni",
"cors_settings": "Impostazioni CORS",
"copy_to_clipboard": "Testo copiato negli appunti!"
"copy_to_clipboard": "Testo copiato negli appunti!",
"f2b_manage_external": "Gestione esterna di Fail2Ban",
"password_reset_info": "Se non viene fornita alcuna e-mail di recupero, questa funzione non può essere utilizzata.",
"password_reset_tmpl_text": "Template testuale",
"logo_dark_label": "Invertito per la modalità scura",
"ip_check": "Controllo IP",
"password_reset_settings": "Impostazioni per il recupero della password",
"password_reset_tmpl_html": "Template HTML",
"password_settings": "Impostazioni della password",
"queue_unban": "sblocca",
"restore_template": "Lasciare vuoto per ripristinare il modello predefinito.",
"logo_normal_label": "Normale"
},
"danger": {
"access_denied": "Accesso negato o form di login non corretto",
@ -466,7 +478,13 @@
"template_exists": "Il template %s esiste già",
"template_id_invalid": "Il template con ID %s non è valido",
"img_dimensions_exceeded": "L'immagine supera la dimensione massima consentita",
"img_size_exceeded": "L'immagine supera la dimensione massima del file"
"img_size_exceeded": "L'immagine supera la dimensione massima del file",
"extended_sender_acl_denied": "Autorizzazioni ACL mancanti per configurare indirizzi esterni come mittente",
"invalid_reset_token": "Token di reset non valido",
"password_reset_invalid_user": "La casella di posta elettronica non è stata trovata o non è stata impostata un'e-mail di recupero",
"password_reset_na": "Il recupero della password non è attualmente disponibile. Contattare l'amministratore.",
"recovery_email_failed": "Impossibile inviare un'e-mail di recupero. Contattare l'amministratore.",
"to_invalid": "Il destinatario non deve essere vuoto"
},
"debug": {
"chart_this_server": "Grafico (questo server)",
@ -503,7 +521,11 @@
"memory": "Memoria",
"timezone": "Fuso orario",
"no_update_available": "Il sistema è aggiornato all'ultima versione",
"update_failed": "Impossibile verificare la presenza di un aggiornamento"
"update_failed": "Impossibile verificare la presenza di un aggiornamento",
"architecture": "Architettura",
"error_show_ip": "Impossibile risolvere gli indirizzi IP pubblici",
"show_ip": "Mostra IP pubblico",
"wip": "Attualmente in lavorazione"
},
"diagnostics": {
"cname_from_a": "Valore letto dal record A/AAAA. Questo è supportato finché il record punta alla risorsa corretta.",
@ -632,7 +654,11 @@
"last_modified": "Ultima modifica",
"pushover_sound": "Suono",
"custom_attributes": "Attributi personalizzati",
"domain_footer_skip_replies": "Ignora il piè di pagina nelle e-mail di risposta"
"domain_footer_skip_replies": "Ignora il piè di pagina nelle e-mail di risposta",
"domain_footer_html": "Piè di pagina HTML",
"domain_footer_plain": "Piè di pagina PLAIN",
"footer_exclude": "Escludi dal piè di pagina",
"password_recovery_email": "E-mail di recupero password"
},
"fido2": {
"confirm": "Conferma",
@ -688,7 +714,13 @@
"mobileconfig_info": "Please login as mailbox user to download the requested Apple connection profile.",
"other_logins": "Key login",
"password": "Password",
"username": "Nome utente"
"username": "Nome utente",
"request_reset_password": "Richiesta di modifica della password",
"back_to_mailcow": "Torna a mailcow",
"forgot_password": "> Password dimenticata?",
"new_password": "Nuova password",
"new_password_confirm": "Conferma la nuova password",
"reset_password": "Ripristino della password"
},
"mailbox": {
"action": "Azione",
@ -939,7 +971,9 @@
"show_message": "Mostra messaggio",
"unhold_mail": "Sblocca",
"hold_mail_legend": "Blocca le mail selezionate. (Previene ulteriori tentativi di consegna)",
"legend": "Funzioni delle azioni della coda di posta:"
"legend": "Funzioni delle azioni della coda di posta:",
"unban": "Coda di sblocco",
"unhold_mail_legend": "Rilascia le mail selezionate per la consegna. (Richiede una prenotazione preventiva)"
},
"start": {
"help": "Mostra/Nascondi pannello di aiuto",
@ -1028,7 +1062,12 @@
"template_added": "Aggiunto template %s",
"template_modified": "Le modifiche al template %s sono state salvate",
"template_removed": "Il template con ID %s è stato cancellato",
"f2b_banlist_refreshed": "L'ID della lista blocchi è stato aggiornato con successo."
"f2b_banlist_refreshed": "L'ID della lista blocchi è stato aggiornato con successo.",
"domain_footer_modified": "Le modifiche al piè di pagina del dominio %s sono state salvate",
"cors_headers_edited": "Le impostazioni CORS sono state salvate",
"ip_check_opt_in_modified": "Il controllo dell'indirizzo IP è stato salvato con successo",
"password_changed_success": "La password è stata modificata con successo",
"recovery_email_sent": "Email di recupero inviata a %s"
},
"tfa": {
"api_register": "%s usa le API Yubico Cloud. Richiedi una chiave API <a href=\"https://upgrade.yubico.com/getapikey/\" target=\"_blank\">qui</a>",
@ -1220,7 +1259,9 @@
"direct_protocol_access": "Questo utente della mailbox ha <b>accesso diretto ed esterno</b> ai seguenti protocolli e applicazioni. Questa impostazione è controllata dal tuo amministratore. Le password delle applicazioni possono essere create per garantire l'accesso ai singoli protocolli e applicazioni.<br>Il pulsante \"Accedi alla webmail\" fornisce un singolo accesso a SOGo ed è sempre disponibile.",
"pushover_sound": "Suono",
"attribute": "Attributo",
"value": "Valore"
"value": "Valore",
"password_reset_info": "Se non viene fornita alcuna e-mail per il recupero della password, questa funzione non può essere utilizzata.",
"pw_recovery_email": "Email di recupero password"
},
"warning": {
"cannot_delete_self": "Cannot delete logged in user",
@ -1264,6 +1305,7 @@
"aria": {
"sortAscending": ": attivare l'ordinamento crescente delle colonne",
"sortDescending": ": attivare l'ordinamento decrescente delle colonne"
}
},
"decimal": "."
}
}

View File

@ -28,7 +28,8 @@
"spam_score": "Pontuação de spam",
"syncjobs": "Trabalhos de sincronização",
"tls_policy": "Política de TLS",
"unlimited_quota": "Cota ilimitada para mailboxes"
"unlimited_quota": "Cota ilimitada para mailboxes",
"pw_reset": "Permite redefinir a senha do usuário"
},
"add": {
"activate_filter_warn": "Todos os outros filtros serão desativados quando a opção ativa estiver marcada.",

View File

@ -28,7 +28,8 @@
"spam_score": "Политика фильтрации спама",
"syncjobs": "Задания синхронизации",
"tls_policy": "Политика шифрования",
"unlimited_quota": "Неограниченная квота для почтовых ящиков"
"unlimited_quota": "Неограниченная квота для почтовых ящиков",
"pw_reset": "Разрешить сброс пароля пользователей mailcow"
},
"add": {
"activate_filter_warn": "Активация этого фильтра отключит все остальные фильтры этого типа.",

View File

@ -28,13 +28,14 @@
"app_passwds": "Паролі додатків",
"domain_relayhost": "Змінити relayhost для домену",
"login_as": "Увійти як користувач поштової скриньки",
"sogo_profile_reset": "Скинути профіль SOGo"
"sogo_profile_reset": "Скинути профіль SOGo",
"pw_reset": "Скидання паролю користувача"
},
"add": {
"app_name": "Назва додатка",
"app_password": "Додати пароль додатка",
"app_passwd_protocols": "Дозволені протоколи для пароля додатка",
"comment_info": "Приватний коментар не видно користувачам, а публічний – відображається поряд із псевдонімом в особистому кабінеті користувача.",
"comment_info": "Приватний коментар не видно користувачам, а публічний – відображається поряд із псевдонімом в особистому кабінеті користувача",
"custom_params": "Налаштування користувача",
"gal": "GAL - Глобальна адресна книга",
"mailbox_quota_m": "Максимальна квота поштового акаунту (MiB)",
@ -77,7 +78,7 @@
"password_repeat": "Підтвердження пароля (повтор)",
"post_domain_add": "Після додавання нового домену контейнер SOGo (\"sogo-mailcow\") необхідно перезапустити!<br><br>Крім того, слід перевірити конфігурацію DNS доменів. Після затвердження конфігурації DNS перезапустіть контейнер \"acme-mailcow\", щоб автоматично згенерувати сертифікати для вашого нового домену.<br>Цей крок не є обов'язковим і повторюватиметься кожні 24 години.",
"relay_all_info": "Якщо ви вирішите <b>не</b> ретранслювати всіх одержувачів, вам потрібно буде додати (\"сліпу\") поштову адресу для кожного одержувача, якого слід ретранслювати.",
"relay_transport_info": "<div class=\"label label-info\">Інфо</div> Ви можете налаштувати власний транспорт для домену. Якщо такої установки немає, то доставка буде виконана на основі MX-записів.",
"relay_transport_info": "<div class=\"badge fs-6 bg-info\">Інфо</div> Ви можете налаштувати власний транспорт для домену. Якщо такої установки немає, то доставка буде виконана на основі MX-записів.",
"relayhost_wrapped_tls_info": "Будь ласка, <b>не</b> використовуйте TLS порти (в основному це 465 порт).<br>\nВикористовуйте будь-який <b>не</b> порт TLS, який підтримує STARTTLS. А для захисту від downgrate атак - налаштуйте примусову політику TLS.",
"syncjob_hint": "Паролі до вашого акаунту будуть збережені на сервері у вигляді простого тексту!",
"timeout1": "Тайм-аут для підключення до віддаленого хоста",
@ -299,7 +300,7 @@
"api_allow_from": "Список IP-адрес для доступу до API (розділених комою або новим рядком)",
"api_skip_ip_check": "Пропустити перевірку IP для API",
"arrival_time": "Время получения (час. пояс сервера)",
"ban_list_info": "Список заблокованих IP-адрес: <b>підмережа (час, що залишився) - [дія]</b>.<br />IP-адреси, що знаходяться в черзі на розблокування, будуть видалені зі списку активних блокувань протягом декількох секунд.<br> />Червона мітка означає, що підмережа/хост знаходиться в чорному списку.",
"ban_list_info": "Список заблокованих IP-адрес: <b>підмережа (час, що залишився) - [дія]</b>.<br />IP-адреси, що знаходяться в черзі на розблокування, будуть видалені зі списку активних блокувань протягом декількох секунд.<br>Червона мітка означає, що підмережа/хост знаходиться в чорному списку.",
"credentials_transport_warning": "<b>Попередження</b>: додавання нового запису перезапише облікові дані для всіх записів з таким самим <i>наступним хостом</i>.",
"dkim_to_title": "Цільовий домен(и) (DKIM буде перезаписаний)",
"duplicate_dkim": "Копіювання DKIM запису",
@ -349,7 +350,13 @@
"queue_unban": "розблокувати",
"f2b_manage_external": "Керування Fail2Ban ззовні",
"f2b_manage_external_info": "Fail2ban буде підтримувати список заборонених, але не буде активно встановлювати правила для блокування трафіку. Використовуйте згенерований список заборон нижче для зовнішнього блокування трафіку.",
"copy_to_clipboard": "Текст скопійовано в буфер обміну!"
"copy_to_clipboard": "Текст скопійовано в буфер обміну!",
"password_reset_tmpl_text": "Plain-text шаблон",
"password_reset_info": "Якщо електронну адресу для відновлення не надано, ця функція не може бути використана.",
"logo_dark_label": "Темна тема",
"password_reset_settings": "Налаштування відновлення паролів",
"password_reset_tmpl_html": "HTML шаблон",
"logo_normal_label": "Світла тема"
},
"danger": {
"alias_domain_invalid": "Неприпустимий псевдонім домену: %s",
@ -479,7 +486,8 @@
"template_exists": "Шаблон %s вже існує",
"template_id_invalid": "Ідентифікатор шаблону %s недійсний",
"template_name_invalid": "Ім'я шаблону невірне",
"img_size_exceeded": "Зображення перевищує максимальний розмір файлу"
"img_size_exceeded": "Зображення перевищує максимальний розмір файлу",
"img_dimensions_exceeded": "Зображення перевищує максимальний розмір"
},
"debug": {
"chart_this_server": "Діаграма (цей сервер)",
@ -661,7 +669,8 @@
},
"domain_footer_html": "Нижній колонтитул HTML",
"domain_footer_plain": "ЗВИЧАЙНИЙ нижній колонтитул",
"custom_attributes": "Користувацькі атрибути"
"custom_attributes": "Користувацькі атрибути",
"domain_footer_skip_replies": "Ігнорувати нижній колонтитул у листах-відповідях"
},
"fido2": {
"confirm": "Підтвердити",
@ -1068,7 +1077,8 @@
"cors_headers_edited": "Налаштування CORS збережено",
"ip_check_opt_in_modified": "Перевірка IP-адреси успішно збережено",
"template_removed": "Шаблону із ID %s видалено",
"f2b_banlist_refreshed": "Ідентифікатор списку заборонених успішно оновлено."
"f2b_banlist_refreshed": "Ідентифікатор списку заборонених успішно оновлено.",
"domain_footer_modified": "Зміни в нижньому колонтитулі домену %s збережено"
},
"tfa": {
"confirm": "Підтвердьте",
@ -1095,7 +1105,8 @@
"set_tfa": "Встановити метод двофакторної перевірки",
"u2f_deprecated": "Схоже, ваш ключ був зареєстрований за допомогою застарілого методу U2F. Ми дезактивуємо двофакторну автентифікацію для вас і видалимо ваш ключ.",
"waiting_usb_auth": "<i>Очікування пристрою USB...</i><br><br>Будь ласка, натисніть зараз кнопку на USB пристрої.",
"waiting_usb_register": "<i>Очікування USB-пристрою...</i><br><br>Будь ласка, введіть пароль вище та підтвердіть реєстрацію, натиснувши кнопку на USB пристрої."
"waiting_usb_register": "<i>Очікування USB-пристрою...</i><br><br>Будь ласка, введіть пароль вище та підтвердіть реєстрацію, натиснувши кнопку на USB пристрої.",
"authenticators": "Аутентифікатори"
},
"user": {
"action": "Дії",

View File

@ -84,6 +84,7 @@ services:
stop_grace_period: 30s
depends_on:
- dovecot-mailcow
- clamd-mailcow
environment:
- TZ=${TZ}
- IPV4_NETWORK=${IPV4_NETWORK:-172.22.1}
@ -111,7 +112,7 @@ services:
- rspamd
php-fpm-mailcow:
image: mailcow/phpfpm:1.89
image: mailcow/phpfpm:1.90
command: "php-fpm -d date.timezone=${TZ} -d expose_php=0"
depends_on:
- redis-mailcow
@ -191,7 +192,7 @@ services:
- phpfpm
sogo-mailcow:
image: mailcow/sogo:nightly-20240819
image: mailcow/sogo:nightly-20240905
environment:
- DBNAME=${DBNAME}
- DBUSER=${DBUSER}

View File

@ -360,6 +360,21 @@ while (($#)); do
exit 3
fi
;;
--check-tags)
echo "Checking remote tags for updates..."
LATEST_TAG_REV=$(git ls-remote --exit-code --quiet --tags origin | tail -1 | cut -f1)
if [ "$?" -ne 0 ]; then
echo "A problem occurred while trying to fetch the latest tag from github."
exit 99
fi
if [[ -z $(git log HEAD --pretty=format:"%H" | grep "${LATEST_TAG_REV}") ]]; then
echo -e "New tag is available.\nThe changes can be found here: https://github.com/mailcow/mailcow-dockerized/releases/latest"
exit 0
else
echo "No updates available."
exit 3
fi
;;
--ours)
MERGE_STRATEGY=ours
;;
@ -396,9 +411,10 @@ while (($#)); do
DEV=y
;;
--help|-h)
echo './update.sh [-c|--check, --ours, --gc, --nightly, --prefetch, --skip-start, --skip-ping-check, --stable, -f|--force, -d|--dev, -h|--help]
echo './update.sh [-c|--check, --check-tags, --ours, --gc, --nightly, --prefetch, --skip-start, --skip-ping-check, --stable, -f|--force, -d|--dev, -h|--help]
-c|--check - Check for updates and exit (exit codes => 0: update available, 3: no updates)
--check-tags - Check for newer tags and exit (exit codes => 0: newer tag available, 3: no newer tag)
--ours - Use merge strategy option "ours" to solve conflicts in favor of non-mailcow code (local changes over remote changes), not recommended!
--gc - Run garbage collector to delete old image tags
--nightly - Switch your mailcow updates to the unstable (nightly) branch. FOR TESTING PURPOSES ONLY!!!!