# 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

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](https://auth.satellite.bar/if/user/#/settings;%7B%22page%22%3A%22page-details%22%7D)

[Lien vers la partie technique pour donner l'accès](https://doc.satellite.bar/link/181#bkmrk-cr%C3%A9er-une-boite-mail)

# 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"](https://auth.satellite.bar/if/user/#/settings;%7B%22page%22%3A%22page-tokens%22%7D), 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).

[![](https://doc.satellite.bar/uploads/images/gallery/2025-05/scaled-1680-/w9rY9WvFxfY9Zph4-image-1748288547942.png)](https://doc.satellite.bar/uploads/images/gallery/2025-05/w9rY9WvFxfY9Zph4-image-1748288547942.png)

Tu peux ensuite copier le token en cliquant sur le bouton correspondant.

[![](https://doc.satellite.bar/uploads/images/gallery/2025-04/scaled-1680-/x210Vm0kZn7TvoSM-image-1745503771513.png)](https://doc.satellite.bar/uploads/images/gallery/2025-04/x210Vm0kZn7TvoSM-image-1745503771513.png)

Sur certains navigateurs comme Safari, il n'est pas possible de copier directement via le bouton et une notification avec le token apparait. Il suffit de copier à la main le token affiché (dans l'exemple ci-dessous `AaAaAaAa...`)

[![TokenCopyFailNotification](https://doc.satellite.bar/uploads/images/gallery/2025-04/scaled-1680-/nc6j7oKD38IhdgWL-capture-decran-2025-04-24-a-19-17-49.png)](https://doc.satellite.bar/uploads/images/gallery/2025-04/nc6j7oKD38IhdgWL-capture-decran-2025-04-24-a-19-17-49.png)

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.

[![](https://doc.satellite.bar/uploads/images/gallery/2025-04/scaled-1680-/KuBiL10eq5dI6xbJ-image-1745504071623.png)](https://doc.satellite.bar/uploads/images/gallery/2025-04/KuBiL10eq5dI6xbJ-image-1745504071623.png)

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](https://datatracker.ietf.org/doc/html/rfc5228) avec une [série d'extensions](https://doc.dovecot.org/2.4.0/core/config/sieve/#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)

```sieve
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"

```sieve
require ["fileinto"];

if header :contains "List-Id" "satellite.bar"
{
    fileinto "Satellite";
}


```

### Filtrer les mails à double

Si c'est envoyé à commission et nouveaux par example

```sieve
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](https://doc.satellite.bar/link/181#bkmrk-configurer-un-script)

# 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 ton `nom.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.

Le menu pour ajouter des identités supplémentaires varie en fonction des applications. Je donne la procédure pour celles que j'utilise, sinon cherche un peu dans les réglages du compte et/ou sur <s>Google</s> Duckduckgo, et édite la page pour ajouter quand tu as trouvé.

## Thunderbird

- Clic droit sur le nom du compte -&gt; 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

- Menu "Hamburger" (3 barres) -&gt; Settings
- "prenom.nom@satellite.bar" -&gt; "Envoi de courriels" -&gt; "Gérer les identités"
- Menu 3 points -&gt; Nouvelle identité
- Remplir en tout cas "nom" et "adresse courriel"
- Tu peux choisir entre les différentes identités dans le dropdown de choix d'adresse "From"

# 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)