Guide de la configuration mail
Explications pour configurer ta boite mail sat sur un client mail (par example Thunderbird, Apple Mail, K-9 Mail, etc...)
- Créer ton adresse mail
- Créer un token d'accès au SSO
- Configuration de l'application mail en elle-même
- Optionel : Filtrer/classer les mails automatiquement
- Optionel : Configurer des identités supplémentaires
- Troubleshooting
Créer ton adresse mail
Avant de pouvoir faire quoi que ce soit il faut que ton adresse mail existe sur le serveur, et il faut donc que le responsable informatique ait fait son travail.
On utilise généralement des adresses email du type prenom.nom@satellite.bar
, sans accents ou charactères non-ascii (on n'a pas envie de tenter les dieux de l'informatique). Si c'est pas évident il faut transmettre ce que tu veux au responsable informatique.
Tu peux voir l'adresse configurée dans les settings personnels d'authentik
Lien vers la partie technique pour donner l'accès
Créer un token d'accès au SSO
Malheureusement les clients mails ne permettent pas de se connecter en OAuth à part pour des domaines whitelistés comme gmail.com
. Ça veut dire qu'on est obligé de se connecter via un mot de passe, mais il faut éviter de mettre le mot de passe authentik principal. On va donc créer un "App password" spécifique pour se connecter.
Pour ça : il faut ouvrir les paramètres d'authentik, onglet "Tokens and App passwords", créer un "App password", lui donner un nom AVEC TON USERNAME DEDANS (ça doit être globalement unique) et une date d'expiration pas trop proche (potentiellement optionnel si on est pas admin, mais la doc d'authentik est pas très claire).
Tu peux ensuite copier le token en cliquant sur le bouton correspondant.
C'est ce token que tu vas utiliser comme mot de passe dans ton application mail
Configuration de l'application mail en elle-même
Tu as maintenant une adresse email et un token du SSO (ton mot de passe principal ne va pas marcher), il est tant de créer un nouveau compte dans ton application mail.
Pour thunderbird et les applications compatibles avec autoconfig
, juste donner l'adresse email et le mot de passe devrait suffire et ils devraient pouvoir s'autoconfigurer.
Sinon il faut rentrer la configuration complète que voici (les noms des champs peuvent varier un peu d'une application à l'autre):
Serveur entrant (IMAP)
- Protocole : IMAP
- Hostname : satellite.bar
- Port : 993
- Sécurité : SSL/TLS (PAS STARTTLS)
- Méthode d'authentification : Mot de passe normal
- Nom d'utilisateur : prenom.nom@satellite.bar
Serveur sortant (SMTP)
- Hostname : satellite.bar
- Port : 465
- Sécurité : SSL/TLS (PAS STARTTLS)
- Méthode d'authentification : Mot de passe normal
- Nom d'utilisateur : prenom.nom@satellite.bar
Il ne reste plus qu'à tester (si tu es nouvelleau, rappelle-toi que tu ne peux envoyer des mails qu'à des adresses @satellite.bar
pour l'instant)
Optionel : Filtrer/classer les mails automatiquement
Le serveur supporte les scripts Sieve avec une série d'extensions.
Malheureusement pour l'instant il n'y a rien de configuré pour permettre de modifier ton script personnel tout seul, il faut donc attraper le responsable informatique (ou quelqu'un avec un accès admin à la stack Docker) et le faire éditer ton script.
Examples de scripts
Mettre les mails qui arrivent sur nom.prenom+foobar@satellite.bar
dans un dossier "Foobar" (et le créer si besoin)
require ["variables", "envelope", "fileinto", "subaddress", "mailbox"];
if envelope :matches :detail "to" "*" {
set :lower :upperfirst "detail" "${1}";
}
if string :is "${detail}" "" {
/* Default case if no detail is specified */
keep;
} else {
fileinto :create "${detail}";
}
Mettre les mails des listes dans un dossier "Listes"
require ["fileinto"];
if header :contains "List-Id" "satellite.bar"
{
fileinto "Satellite";
}
Filtrer les mails à double
Si c'est envoyé à commission et nouveaux par example
require ["fileinto", "duplicate", "imap4flags"];
if duplicate
{
fileinto :flags "\\Seen" "Trash";
}
Il est évidemment possible de combiner ou adapter les scripts en fonction des besoins
Lien technique pour le responsable info
Optionel : Configurer des identités supplémentaires
Pour l'instant tu peux envoyer des mails depuis prenom.nom@satellite.bar
, mais disons que tu veux envoyer un mail depuis un alias ou une mailing liste (par exemple écrire depuis concert@satellite.bar
pour que la réponse arrive au bon endroit. Pour ça il faut configurer des identités supplémentaires dans ton client
Attention : le serveur ne va pas te laisser envoyer de mail depuis n'importe quelle addresse. Tu peux ajouter comme identité :
- Les alias qui redirigent vers ton
prenom.nom@satellite.bar
. Il faut que ce soit une redirection directe, si ça passe par une liste ou un autre alias ça va pas marcher. - Les listes mails dont tu es membre. Il faut soit être membre avec ton
prenom.nom@satellite.bar
, soit avoir tonnom.prenom@satellite.bar
enregistrée sur mailman sur le même compte et être inscrit à la liste avec ton adresse email primaire. Il faut aussi que ce soit le nom de base de la liste et pas un alias.
Thunderbird
- Clic droit sur le nom du compte -> Settings dans le menu contextuel
- "Manage identities" tout en bas à droite
- Add
- Remplir en tout cas les champs "Your Name" et "Email address" et sauver
- Quand tu écris un message, les différentes identités apparaissent dans le dropdown du choix d'adresse email "From:"
K-9 Mail
Troubleshooting
Le port n'accepte pas la connexion TCP
Il y a un fail2ban qui bloque les ports pour une ip après quelques essais de login ratés en peu de temps. Il faut regarder les jails dovecot et postfix-sasl.
-
fail2ban-client status dovecot
pour voir les IPs bannies -
fail2ban-client set dovecot unban 10.0.0.0
pour unban une IP (mais ça reset pas le compteur, donc elle peut se faire reban rapidement
Le login foire avec qqch du genre "Bad username/password"
- Il faut un "App password" du SSO, pas le mot de passe principal
- Utiliser l'adresse email complète comme username, pas le username authentik
- L'utilisateur est-il actif dans authentik ?
- L'utilisateur a-t-il un attribut
dovecotAddress
dans authentik ? - L'utilisateur est-il dans le groupe
Email access
- Regarder les logs d'authentification dovecot :
/var/log/dovecot/dovecot.log
(partagé entre le container et l'hôte) - Regarder les logs du proxy LDAP d'authentik (logs docker de
authentik-ldap_outpost-1
)
Les scripts sieve ne s'exécutent pas
- Le script a-t-il compilé ? Il y a un log dans
/srv/mail/prenom.nom@satellite.bar/active.sieve.log
si c'est pas le cas - Les permissions sont-elles bonnes ? Les mails sont délivrés (et sieve exécuté) par l'utilisateur
vmail
, il faut qu'il ait accès au moins en lecture au script (et idéalement en écriture au script compilé pour gagné en performance)