Merge branch 'master' of github.com:mailcow/mailcow-dockerized

master
andryyy 2021-02-11 09:36:18 +01:00
commit 386d6109c8
8 changed files with 224 additions and 85 deletions

View File

@ -130,6 +130,24 @@ namespace inbox {
mailbox "Verwijderde items" {
special_use = \Trash
}
mailbox "Удаленные" {
special_use = \Trash
}
mailbox "Удаленные элементы" {
special_use = \Trash
}
mailbox "Корзина" {
special_use = \Trash
}
mailbox "Видалені" {
special_use = \Trash
}
mailbox "Видалені елементи" {
special_use = \Trash
}
mailbox "Кошик" {
special_use = \Trash
}
mailbox "废件箱" {
special_use = \Trash
}
@ -167,6 +185,12 @@ namespace inbox {
mailbox "归档" {
special_use = \Archive
}
mailbox "Архив" {
special_use = \Archive
}
mailbox "Архів" {
special_use = \Archive
}
mailbox "Sent" {
auto = subscribe
special_use = \Sent
@ -186,6 +210,18 @@ namespace inbox {
mailbox "已发送邮件" {
special_use = \Sent
}
mailbox "Отправленные" {
special_use = \Sent
}
mailbox "Отправленные элементы" {
special_use = \Sent
}
mailbox "Надіслані" {
special_use = \Sent
}
mailbox "Надіслані елементи" {
special_use = \Sent
}
mailbox "Gesendet" {
special_use = \Sent
}
@ -235,6 +271,12 @@ namespace inbox {
mailbox "草稿箱" {
special_use = \Drafts
}
mailbox "Черновики" {
special_use = \Drafts
}
mailbox "Чернетки" {
special_use = \Drafts
}
mailbox "Junk" {
auto = subscribe
special_use = \Junk
@ -266,6 +308,15 @@ namespace inbox {
mailbox "垃圾箱" {
special_use = \Junk
}
mailbox "Нежелательная почта" {
special_use = \Junk
}
mailbox "Спам" {
special_use = \Junk
}
mailbox "Небажана пошта" {
special_use = \Junk
}
mailbox "Koncepty" {
special_use = \Drafts
}
@ -331,6 +382,7 @@ service auth {
mode = 0600
user = vmail
}
vsz_limit = 2G
}
service managesieve-login {
inet_listener sieve {

View File

@ -56,6 +56,9 @@ BOUNCE_FUZZY {
}
# Remove bayes ham if fuzzy denied
FUZZY_HAM_MISMATCH {
expression = "(-FUZZY_DENIED | -MAILCOW_FUZZY_DENIED | -LOCAL_FUZZY_DENIED) & (^BAYES_HAM | ^NEURAL_HAM_LONG | ^NEURAL_HAM_SHORT)";
score = 1.0;
expression = "( -FUZZY_DENIED | -MAILCOW_FUZZY_DENIED | -LOCAL_FUZZY_DENIED ) & ( ^BAYES_HAM | ^NEURAL_HAM_LONG | ^NEURAL_HAM_SHORT )"
}
# Remove bayes spam if local fuzzy white
FUZZY_SPAM_MISMATCH {
expression = "( -LOCAL_FUZZY_WHITE ) & ( ^BAYES_SPAM | ^NEURAL_SPAM_LONG | ^NEURAL_SPAM_SHORT )"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -126,6 +126,9 @@ paths:
goto_spam:
description: learn as spam
type: boolean
sogo_visible:
description: toggle visibility as selectable sender in SOGo
type: boolean
type: object
summary: Create alias
/api/v1/add/app-passwd:
@ -2752,6 +2755,9 @@ paths:
type: string
public_comment:
type: string
sogo_visible:
description: toggle visibility as selectable sender in SOGo
type: boolean
type: object
items:
description: contains list of aliases you want update
@ -3029,7 +3035,8 @@ paths:
- domain3.tld
- "*"
sogo_access: "1"
items: info@domain.tld
items:
- info@domain.tld
properties:
attr:
properties:

View File

@ -483,75 +483,94 @@ function alertbox_log_parser($_data){
}
return false;
}
function verify_hash($hash, $password) {
if (preg_match('/^{SSHA256}/i', $hash)) {
// Remove tag if any
$hash = preg_replace('/^{SSHA256}/i', '', $hash);
// Decode hash
$dhash = base64_decode($hash);
// Get first 32 bytes of binary which equals a SHA256 hash
$ohash = substr($dhash, 0, 32);
// Remove SHA256 hash from decoded hash to get original salt string
$osalt = str_replace($ohash, '', $dhash);
// Check single salted SHA256 hash against extracted hash
if (hash_equals(hash('sha256', $password . $osalt, true), $ohash)) {
return true;
}
}
elseif (preg_match('/^{SSHA}/i', $hash)) {
// Remove tag if any
$hash = preg_replace('/^{SSHA}/i', '', $hash);
function verify_salted_hash($hash, $password, $algo, $salt_length)
{
// Decode hash
$dhash = base64_decode($hash);
// Get first 20 bytes of binary which equals a SSHA hash
$ohash = substr($dhash, 0, 20);
$ohash = substr($dhash, 0, $salt_length);
// Remove SSHA hash from decoded hash to get original salt string
$osalt = str_replace($ohash, '', $dhash);
// Check single salted SSHA hash against extracted hash
if (hash_equals(hash('sha1', $password . $osalt, true), $ohash)) {
if (hash_equals(hash($algo, $password . $osalt, true), $ohash)) {
return true;
}
return false;
}
function verify_hash($hash, $password)
{
if (preg_match('/^{(.+)}(.+)/i', $hash, $hash_array)) {
$scheme = strtoupper($hash_array[1]);
$hash = $hash_array[2];
switch ($scheme) {
case "ARGON2I":
case "ARGON2ID":
case "BLF-CRYPT":
case "CRYPT":
case "DES-CRYPT":
case "MD5-CRYPT":
case "MD5":
case "SHA256-CRYPT":
case "SHA512-CRYPT":
return password_verify($password, $hash);
case "CLEAR":
case "CLEARTEXT":
case "PLAIN":
return $password == $hash;
case "LDAP-MD5":
$hash = base64_decode($hash);
return hash_equals(hash('md5', $password, true), $hash);
case "PBKDF2":
$components = explode('$', $hash);
$salt = $components[2];
$rounds = $components[3];
$hash = $components[4];
return hash_equals(hash_pbkdf2('sha1', $password, $salt, $rounds), $hash);
case "PLAIN-MD4":
return hash_equals(hash('md4', $password), $hash);
case "PLAIN-MD5":
return md5($password) == $hash;
case "PLAIN-TRUNC":
$components = explode('-', $hash);
if (count($components) > 1) {
$trunc_len = $components[0];
$trunc_password = $components[1];
return substr($password, 0, $trunc_len) == $trunc_password;
} else {
return $password == $hash;
}
elseif (preg_match('/^{PLAIN-MD5}/i', $hash)) {
$hash = preg_replace('/^{PLAIN-MD5}/i', '', $hash);
if (md5($password) == $hash) {
return true;
}
}
elseif (preg_match('/^{SHA512-CRYPT}/i', $hash)) {
// Remove tag if any
$hash = preg_replace('/^{SHA512-CRYPT}/i', '', $hash);
// Decode hash
preg_match('/\\$6\\$(.*)\\$(.*)/i', $hash, $hash_array);
$osalt = $hash_array[1];
$ohash = $hash_array[2];
if (hash_equals(crypt($password, '$6$' . $osalt . '$'), $hash)) {
return true;
}
}
elseif (preg_match('/^{SSHA512}/i', $hash)) {
$hash = preg_replace('/^{SSHA512}/i', '', $hash);
// Decode hash
$dhash = base64_decode($hash);
// Get first 64 bytes of binary which equals a SHA512 hash
$ohash = substr($dhash, 0, 64);
// Remove SHA512 hash from decoded hash to get original salt string
$osalt = str_replace($ohash, '', $dhash);
// Check single salted SHA512 hash against extracted hash
if (hash_equals(hash('sha512', $password . $osalt, true), $ohash)) {
return true;
}
}
elseif (preg_match('/^{MD5-CRYPT}/i', $hash)) {
$hash = preg_replace('/^{MD5-CRYPT}/i', '', $hash);
if (password_verify($password, $hash)) {
return true;
}
}
elseif (preg_match('/^{BLF-CRYPT}/i', $hash)) {
$hash = preg_replace('/^{BLF-CRYPT}/i', '', $hash);
if (password_verify($password, $hash)) {
return true;
case "SHA":
case "SHA1":
case "SHA256":
case "SHA512":
// SHA is an alias for SHA1
$scheme = $scheme == "SHA" ? "sha1" : strtolower($scheme);
$hash = base64_decode($hash);
return hash_equals(hash($scheme, $password, true), $hash);
case "SMD5":
return verify_salted_hash($hash, $password, 'md5', 16);
case "SSHA":
return verify_salted_hash($hash, $password, 'sha1', 20);
case "SSHA256":
return verify_salted_hash($hash, $password, 'sha256', 32);
case "SSHA512":
return verify_salted_hash($hash, $password, 'sha512', 64);
default:
return false;
}
}
return false;

View File

@ -1063,7 +1063,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
return false;
}
// support pre hashed passwords
if (preg_match('/^({SSHA256}|{SSHA}|{SHA512-CRYPT}|{SSHA512}|{MD5-CRYPT}|{PLAIN-MD5})/i', $password)) {
if (preg_match('/^{(ARGON2I|ARGON2ID|BLF-CRYPT|CLEAR|CLEARTEXT|CRYPT|DES-CRYPT|LDAP-MD5|MD5|MD5-CRYPT|PBKDF2|PLAIN|PLAIN-MD4|PLAIN-MD5|PLAIN-TRUNC|PLAIN-TRUNC|SHA|SHA1|SHA256|SHA256-CRYPT|SHA512|SHA512-CRYPT|SMD5|SSHA|SSHA256|SSHA512)}/i', $password)) {
$password_hashed = $password;
}
else {
@ -2579,7 +2579,7 @@ function mailbox($_action, $_type, $_data = null, $_extra = null) {
continue;
}
// support pre hashed passwords
if (preg_match('/^({SSHA256}|{SSHA}|{SHA512-CRYPT}|{SSHA512}|{MD5-CRYPT}|{PLAIN-MD5})/i', $password)) {
if (preg_match('/^{(ARGON2I|ARGON2ID|BLF-CRYPT|CLEAR|CLEARTEXT|CRYPT|DES-CRYPT|LDAP-MD5|MD5|MD5-CRYPT|PBKDF2|PLAIN|PLAIN-MD4|PLAIN-MD5|PLAIN-TRUNC|PLAIN-TRUNC|SHA|SHA1|SHA256|SHA256-CRYPT|SHA512|SHA512-CRYPT|SMD5|SSHA|SSHA256|SSHA512)}/i', $password)) {
$password_hashed = $password;
}
else {

View File

@ -9,10 +9,12 @@
"filters": "Filtres",
"login_as": "S'identifier en tant qu'utilisateur",
"prohibited": "Interdit par les ACL",
"protocol_access": "Modifier le protocol d'acces",
"pushover": "Pushover",
"quarantine": "Actions de quarantaine",
"quarantine_attachments": "Pièces jointes en quarantaine",
"quarantine_notification": "Modifier la notification de quarantaine",
"quarantine_category": "Modifier la catégorie de la notification de quarantaine",
"ratelimit": "Limite d'envoi",
"recipient_maps": "Cartes destinataire",
"smtp_ip_access": "Changer les hôtes autorisés pour SMTP",
@ -23,7 +25,8 @@
"spam_score": "Score SPAM",
"syncjobs": "Tâches de synchronisation",
"tls_policy": "Police TLS",
"unlimited_quota": "Quota illimité pour les boites de courriel"
"unlimited_quota": "Quota illimité pour les boites de courriel",
"domain_desc": "Modifier la description du domaine"
},
"add": {
"activate_filter_warn": "Tous les autres filtres seront désactivés, quand activé est coché.",
@ -31,7 +34,7 @@
"add": "Ajouter",
"add_domain_only": "Ajouter uniquement le domaine",
"add_domain_restart": "Ajouter le domaine et redémarrer SOGo",
"alias_address": "Alias d'adresse/s",
"alias_address": "Alias d'adresse(s)",
"alias_address_info": "<small>Adresse(s) courriel complète(s) ou @example.com, pour capturer tous les messages d'un domaine (séparées par des virgules). <b>Seulement des domaines Mailcow</b>.</small>",
"alias_domain": "Alias de domaine",
"alias_domain_info": "<small>Seulement des noms de domaines valides (séparés par des virgules).</small>",
@ -136,6 +139,7 @@
"ban_list_info": "Consultez la liste des adresses IP interdites ci-dessous: <b>réseau (durée d'interdiction restante) - [actions]</b>.<br />Les adresses IP mises en file d'attente pour être interdites seront supprimées de la liste d'interdiction active dans quelques secondes.<br />Les étiquettes rouges indiquent des interdictions permanentes actives par liste noire.",
"change_logo": "Changer de logo",
"configuration": "Configuration",
"convert_html_to_text": "Convertir le code HTML en texte brut",
"credentials_transport_warning": "<b>Attention</b>: Lajout dune nouvelle entrée de carte de transport mettra à jour les informations didentification pour toutes les entrées avec une colonne nexthop correspondante.",
"customer_id": "ID client",
"customize": "Personnaliser",
@ -156,20 +160,23 @@
"dkim_to": "Vers",
"dkim_to_title": "Les domaines ciblés seront réécrits",
"domain": "Domaine",
"domain_admin": "Administrateur de domaine",
"domain_admins": "Administrateurs de domaine",
"domain_s": "Domaine/s",
"domain_s": "Domaine(s)",
"duplicate": "Dupliquer",
"duplicate_dkim": "Dupliquer l'enregistrement DKIM",
"edit": "Editer",
"empty": "Aucun résultat",
"excludes": "Exclure ces destinataires",
"f2b_ban_time": "Durée du bannissement (s)",
"f2b_ban_time": "Durée du bannissement(s)",
"f2b_blacklist": "Réseaux/Domaines sur Liste Noire",
"f2b_filter": "Filtre(s) Regex",
"f2b_list_info": "Un hôte ou un réseau sur liste noire l'emportera toujours sur une entité de liste blanche. <b>L'application des mises à jour de liste prendra quelques secondes.</b>",
"f2b_max_attempts": "Nb max. de tentatives",
"f2b_netban_ipv4": "Taille du sous-réseau IPv4 pour l'application du bannissement (8-32)",
"f2b_netban_ipv6": "Taille du sous-réseau IPv6 pour l'application du bannissement (8-128)",
"f2b_parameters": "Paramètres Fail2ban",
"f2b_regex_info": "Logs pris en compte: SOGo, Postfix, Dovecot, PHP-FPM.",
"f2b_retry_window": "Fenêtre de nouvel essai pour le nb max. de tentatives",
"f2b_whitelist": "Réseaux/hôtes en liste blanche",
"filter_table": "Table de filtrage",
@ -184,6 +191,7 @@
"hash_remove_info": "La suppression d'un hachage ratelimit (s'il existe toujours) réinitialisera complètement son compteur.<br>\r\n Chaque hachage est indiqué par une couleur individuelle.",
"help_text": "Remplacer le texte d'aide sous le masque de connexion (HTML autorisé)",
"host": "Hôte",
"html": "HTML",
"import": "Importer",
"import_private_key": "Importer la clè privée",
"in_use_by": "Utilisé par",
@ -212,6 +220,7 @@
"oauth2_redirect_uri": "URI de redirection",
"oauth2_renew_secret": "Générer un nouveau secret client",
"oauth2_revoke_tokens": "Révoquer tous les jetons",
"optional": "Optionnel",
"password": "Mot de passe",
"password_repeat": "Confirmation du mot de passe (répéter)",
"priority": "Priorité",
@ -221,6 +230,7 @@
"quarantine_exclude_domains": "Exclure les domaines et les alias de domaine",
"quarantine_max_age": "Âge maximun en jour(s)<br><small>La valeur doit être égale ou supérieure à 1 jour.</small>",
"quarantine_max_size": "Taille maximum en Mo (les éléments plus grands sont mis au rebut):<br><small>0 ne signifie <b>pas</b> illimité.</small>",
"quarantine_max_score": "Ignorer la notification si le score de spam est au dessus de cette valeur:<br><small>Par défaut: 9999.0</small>",
"quarantine_notification_html": "Modèle de courriel de notification:<br><small>Laisser vide pour restaurer le modèle par défaut.</small>",
"quarantine_notification_sender": "Notification par e-mail de lexpéditeur",
"quarantine_notification_subject": "Objet du courriel de notification",
@ -397,6 +407,7 @@
"redis_error": "Erreur Redis: %s",
"relayhost_invalid": "La saisie de la carte %s est invalide",
"release_send_failed": "Le message na pas pu être diffusé: %s",
"reset_f2b_regex": "Le filtre regex n'a pas pu être réinitialisé à temps, veuillez réessayer ou attendre quelques secondes de plus et recharger le site web.",
"resource_invalid": "Le nom de la resource %s n'est pas valide",
"rl_timeframe": "Le délai limite du taux est incorrect",
"rspamd_ui_pw_length": "Le mot de passe de l'interface Rspamd doit être de 6 caratères au minimum",
@ -412,19 +423,21 @@
"targetd_relay_domain": "Le domaine cible %s est un domaine de relais",
"temp_error": "Erreur temporaire",
"text_empty": "La zone texte ne peut pas être vide",
"tfa_token_invalid": "Le token TFA est invalide",
"tls_policy_map_dest_invalid": "La politique de destination n'est pas valide",
"tls_policy_map_entry_exists": "Une entrée de carte de politique \"%s\" existe",
"tls_policy_map_parameter_invalid": "Le paramètre Policy est invalide",
"totp_verification_failed": "Echec de la vérification TOTP",
"transport_dest_exists": "La destination de transport \"%s\" existe",
"u2f_verification_failed": "Echec de la vérification U2F: %s",
"fido2_verification_failed": "La vérification FIDO2 a échoué: %s",
"unknown": "Une erreur inconnue est survenue",
"unknown_tfa_method": "Methode TFA inconnue",
"unlimited_quota_acl": "Quota illimité interdit par les ACL",
"username_invalid": "Le nom d'utilisateur %s ne peut pas être utilisé",
"validity_missing": "Veuillez attribuer une période de validité",
"value_missing": "Veuillez fournir toutes les valeurs",
"yotp_verification_failed": "La vérification Yubico OTP en échec: %s"
"yotp_verification_failed": "La vérification Yubico OTP a échoué: %s"
},
"debug": {
"chart_this_server": "Graphique (ce serveur)",
@ -452,6 +465,7 @@
"cname_from_a": "Valeur dérivée de lenregistrement A/AAAA. Ceci est supporté tant que lenregistrement indique la bonne ressource.",
"dns_records": "Enregistrements DNS",
"dns_records_24hours": "Veuillez noter que les modifications apportées au DNS peuvent prendre jusquà 24 heures pour que leurs états actuels soient correctement reflétés sur cette page. Il est conçu comme un moyen pour vous de voir facilement comment configurer vos enregistrements DNS et de vérifier si tous vos enregistrements sont correctement stockés dans les DNS.",
"dns_records_docs": "Veuillez également consulter <a target=\"_blank\" href=\"https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/\">la documentation</a>.",
"dns_records_data": "Données correcte",
"dns_records_name": "Nom",
"dns_records_status": "Etat courant",
@ -464,6 +478,7 @@
"alias": "Editer les alias",
"allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP",
"allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.",
"allowed_protocols": "Protocoles autorisés",
"app_name": "Nom de l'application",
"app_passwd": "Mot de passe de l'application",
"automap": "Essayer dautomatiser les dossiers (\"Sent items\", \"Sent\" => \"Sent\" etc.)",
@ -550,7 +565,7 @@
"spam_score": "Définir un score spam personnalisé",
"subfolder2": "Synchronisation dans le sous-dossier sur la destination<br><small>(vide = ne pas utiliser de sous-dossier)</small>",
"syncjob": "Modifier la tâche de synchronisation",
"target_address": "Adresse/s Goto<small>(séparé/s par des virgules)</small>",
"target_address": "Adresse(s) Goto<small>(séparé(s) par des virgules)</small>",
"target_domain": "Domaine cible",
"timeout1": "Délai de connexion à lhôte distant",
"timeout2": "Délai de connexion à lhôte local",
@ -590,8 +605,10 @@
},
"login": {
"delayed": "La connexion a été retardée de %s secondes.",
"fido2_webauthn": "FIDO2/WebAuthn",
"login": "Connexion",
"mobileconfig_info": "Veuillez vous connecter en tant quutilisateur de la boîte pour télécharger le profil de connexion Apple demandé.",
"other_logins": "Clé d'authentification",
"password": "Mot de passe",
"username": "Nom d'utilisateur"
},
@ -617,6 +634,7 @@
"aliases": "Aliases",
"allow_from_smtp": "Restreindre l'utilisation de <b>SMTP</b> à ces adresses IP",
"allow_from_smtp_info": "Laissez vide pour autoriser tous les expéditeurs.<br>Adresses IPv4/IPv6 et réseaux.",
"allowed_protocols": "Protocoles autorisés",
"backup_mx": "Sauvegarde MX",
"bcc": "BCC",
"bcc_destination": "Destination BCC",
@ -666,6 +684,8 @@
"mailbox_defquota": "Taille de boîte par défaut",
"mailbox_quota": "Taille max. dune boîte",
"mailboxes": "Boîtes mail",
"mailbox_defaults": "Paramètres par défaut",
"mailbox_defaults_info": "Définir les paramètres par défaut pour les nouvelles boîtes aux lettres.",
"mins_interval": "Intervalle (min)",
"msg_num": "Message #",
"multiple_bookings": "Réservations multiples",
@ -676,7 +696,11 @@
"owner": "Propriétaire",
"private_comment": "Commentaire privé",
"public_comment": "Commentaire public",
"q_add_header": "Courriers indésirables",
"q_all": "Toutes les catégories",
"q_reject": "Rejecté",
"quarantine_notification": "Avis de quarantaine",
"quarantine_category": "Catégorie de la notification de quarantaine",
"quick_actions": "Actions",
"recipient_map": "Carte du destinataire",
"recipient_map_info": "Les cartes des destinataires sont utilisées pour remplacer ladresse de destination dun message avant sa livraison.",
@ -711,7 +735,7 @@
"table_size": "Taille de la table",
"table_size_show_n": "Montrer %s articles",
"target_address": "Goto adresse",
"target_domain": "Domain cible",
"target_domain": "Domaine cible",
"tls_enforce_in": "Appliquer le TLS entrant",
"tls_enforce_out": "Appliquer le TLS sortant",
"tls_map_dest": "Destination",
@ -742,12 +766,16 @@
"action": "Action",
"atts": "Pièces jointes",
"check_hash": "Hachage du fichier de recherche @ VT",
"confirm": "Confirmer",
"confirm_delete": "Confirmer la suppression de cet élément.",
"danger": "Danger",
"deliver_inbox": "Envoyer dans la boîte de reception",
"disabled_by_config": "La configuration actuelle du système désactive la fonctionnalité de quarantaine. Veuillez définir \"retentions par boîte\" et une \"taille maximum\" pour les éléments en quarantaine.",
"download_eml": "Télécharger (.eml)",
"empty": "Pas de résultat",
"high_danger": "Haut",
"info": "Information",
"junk_folder": "Courriers indésirables",
"learn_spam_delete": "Apprendre comme spam et supprimer",
"low_danger": "Danger faible",
"medium_danger": "Danger moyen",
@ -755,6 +783,7 @@
"notified": "Notifié",
"qhandler_success": "Demande envoyée avec succès au système. Vous pouvez maintenant fermer la fenêtre.",
"qid": "Rspamd QID",
"qinfo": "Le système de quarantaine enregistrera le courrier rejeté dans la base de données (l'expéditeur n'aura <em> pas </em> l'impression d'un courrier remis) ainsi que le courrier, qui est remis sous forme de copie dans le dossier indésirable d'une boîte aux lettres.\r\n <br>\"Apprendre comme spam et supprimer\" apprendra un message comme spam via le théorème Bayesianet calculera également des hachages flous pour refuser des messages similaires à l'avenir.\r\n <br>Veuillez noter que l'apprentissage de plusieurs messages peut prendre du temps, selon votre système. <br> Les éléments figurant sur la liste noire sont exclus de la quarantaine.",
"qitem": "Élément de quarantaine",
"quarantine": "Quarantaine",
"quick_actions": "Actions",
@ -762,16 +791,21 @@
"received": "Reçu",
"recipients": "Destinataires",
"refresh": "Rafraîchir",
"rejected": "Rejeté",
"release": "Libérer",
"release_body": "Nous avons joint votre message comme fichier eml à ce message.",
"release_subject": "Article de quarantaine potentiellement dommageable %s",
"remove": "Enlever",
"rewrite_subject": "Réécrire le sujet",
"rspamd_result": "Résultat Rspamd",
"sender": "Expéditeur (SMTP)",
"sender_header": "Expéditeur (\"From\" header)",
"type": "Type",
"quick_release_link": "Ouvrir le lien de dégagement rapide",
"quick_delete_link": "Ouvrir le lien de suppression rapide",
"quick_info_link": "Ouvrir le lien d'informations",
"show_item": "Montrer l'article",
"spam": "Spam",
"spam_score": "Score",
"subj": "Sujet",
"table_size": "Dimension de la table",
@ -859,6 +893,7 @@
"upload_success": "Fichier téléchargé avec succès",
"verified_totp_login": "Authentification TOTP vérifiée",
"verified_u2f_login": "Authentification U2F vérifiée",
"verified_fido2_login": "Authentification FIDO2 vérifiée",
"verified_yotp_login": "Authentification Yubico OTP vérifiée"
},
"tfa": {
@ -879,15 +914,30 @@
"set_tfa": "Définir une méthode dauthentification à deux facteurs",
"start_u2f_validation": "Début de la validation",
"tfa": "Authentification à deux facteurs",
"tfa_token_invalid": "Token TFA invalide",
"totp": "OTP (One Time Password = Mot de passe à usage unique : Google Authenticator, Authy, etc.)",
"u2f": "Authentification U2F",
"waiting_usb_auth": "<i>En attente dun périphérique USB...</i><br><br>Sil vous plaît appuyez maintenant sur le bouton de votre périphérique USB U2F.",
"waiting_usb_register": "<i>En attente dun périphérique USB...</i><br><br>Veuillez entrer votre mot de passe ci-dessus et confirmer votre inscription U2F en appuyant sur le bouton de votre périphérique USB U2F.",
"yubi_otp": "Authentification OTP Yubico"
},
"fido2": {
"set_fn": "Définir un nom",
"fn": "Nom",
"rename": "renommer",
"confirm": "Confirmer",
"register_status": "Etat de l'enregistrement",
"known_ids": "Identifiant(s) connu(s)",
"none": "Désactivé",
"set_fido2": "Enregistrer un nouvel appareil FIDO2",
"start_fido2_validation": "Tester la validation FIDO2",
"fido2_auth": "Se connecter avec FIDO2",
"fido2_success": "L'appareil est enregistré avec succès",
"fido2_validation_failed": "La validation a échoué"
},
"user": {
"action": "Action",
"active": "Active",
"active": "Actif",
"active_sieve": "Filtre actif",
"advanced_settings": "Paramètres avancés",
"alias": "Alias",
@ -904,8 +954,8 @@
"app_name": "Nom d'application",
"app_passwds": "Mots de passe de l'application",
"apple_connection_profile": "Profil de connexion Apple",
"apple_connection_profile_complete": "Ce profil de connexion inclut les paramètres IMAP et SMTP ainsi que les chemins Caldav (calendriers) et Carddav (contacts) pour un appareil Apple." ,
"apple_connection_profile_mailonly" : "Ce profil de connexion inclut les paramètres de configuration IMAP et SMTP pour un périphérique Apple.",
"apple_connection_profile_complete": "Ce profil de connexion inclut les paramètres IMAP et SMTP ainsi que les chemins Caldav (calendriers) et Carddav (contacts) pour un appareil Apple.",
"apple_connection_profile_mailonly": "Ce profil de connexion inclut les paramètres de configuration IMAP et SMTP pour un périphérique Apple.",
"change_password": "Changer le mot de passe",
"client_configuration": "Afficher les guides de configuration pour les clients de messagerie et les smartphones",
"create_app_passwd": "Créer un mot de passe application",
@ -931,7 +981,7 @@
"hours": "heures",
"in_use": "Utilisé",
"interval": "Intervalle",
"is_catch_all": "Attrape-tout pour le domaine/s",
"is_catch_all": "Attrape-tout pour le domaine(s)",
"last_mail_login": "Dernière connexion mail",
"last_run": "Dernière exécution",
"loading": "Chargement...",
@ -956,8 +1006,13 @@
"pushover_title": "Titre de la notification",
"pushover_vars": "Lorsquaucun filtre dexpéditeur nest défini, tous les messages seront considérés.<br>Les filtres Regex ainsi que les vérifications exactes de lexpéditeur peuvent être définis individuellement et seront considérés de façon séquentielle. Ils ne dépendent pas les uns des autres.<br>Variables utilisables pour le texte et le titre (veuillez prendre note des politiques de protection des données)",
"pushover_verify": "Vérifier les justificatifs",
"q_add_header": "Courrier indésirable",
"q_all": "Toutes les catégories",
"q_reject": "Rejeté",
"quarantine_notification": "Avis de quarantaine",
"quarantine_category": "Catégorie de la notification de quarantaine",
"quarantine_notification_info": "Une fois quun avis a été envoyé, les articles seront marqués comme \"notified\" et aucune autre notification ne sera envoyée pour ce point particulier.",
"quarantine_category_info": "La catégorie de notification \"Rejeté\" inclut le courrier qui a été rejeté, tandis que \"Dossier indésirable\" informera un utilisateur des e-mails qui ont été placés dans le dossier indésirable.",
"remove": "Enlever",
"running": "En fonction",
"save": "Sauvegarder les changements",

View File

@ -185,8 +185,9 @@ services:
volumes:
- ./data/conf/sogo/:/etc/sogo/:z
- ./data/web/inc/init_db.inc.php:/init_db.inc.php:Z
- ./data/conf/sogo/custom-sogo.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/custom-sogo.js:z
- ./data/conf/sogo/custom-favicon.ico:/usr/lib/GNUstep/SOGo/WebServerResources/img/sogo.ico:z
- ./data/conf/sogo/custom-theme.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/theme.js:z
- ./data/conf/sogo/custom-sogo.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/custom-sogo.js:z
- mysql-socket-vol-1:/var/run/mysqld/:z
- sogo-web-vol-1:/sogo_web:z
- sogo-userdata-backup-vol-1:/sogo_backup:Z
@ -414,6 +415,8 @@ services:
#command: /watchdog.sh
dns:
- ${IPV4_NETWORK:-172.22.1}.254
tmpfs:
- /tmp
volumes:
- rspamd-vol-1:/var/lib/rspamd:z
- mysql-socket-vol-1:/var/run/mysqld/:z