> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oximail.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Courrier & SMTP

> La vue opérateur du chemin du courrier : écouteurs et ports, la configuration [smtp] (clés DKIM, cartes de transport), la file sortante et sa CLI, les domaines d'envoi et le MX de secours.

Cette page est le pendant opérateur de [la page d'architecture SMTP](../architecture/oximail-smtp) : les ports à ouvrir, la configuration `[smtp]`, la file que vous gérez, et les parcours autour des domaines d'envoi. L'[assistant de premier démarrage](../first-boot) écrit une base fonctionnelle pour tout cela.

## Écouteurs et ports

| Port | Écouteur                                                                                                    | Clé de configuration     |
| ---- | ----------------------------------------------------------------------------------------------------------- | ------------------------ |
| 25   | MX entrant : reçoit le courrier du monde. Aussi l'écouteur du MX de secours quand `[mode] role = "backup"`. | `[smtp] bind`            |
| 587  | Soumission (STARTTLS) : les utilisateurs authentifiés qui envoient.                                         | `[smtp] submission_bind` |
| 465  | Soumission en TLS implicite.                                                                                | `[smtp] smtps_bind`      |

L'entrant (25) et la soumission (587/465) sont des **chemins de code séparés** aux règles différentes : le courrier non fiable est authentifié et scoré, le courrier des utilisateurs est validé en identité puis mis en file. Ne proxifiez jamais ces ports ; ils écoutent en direct, même derrière un proxy inverse.

```toml theme={null}
[smtp]
bind = "0.0.0.0:25"
submission_bind = "0.0.0.0:587"
smtps_bind = "0.0.0.0:465"
hostname = "mail.example.com"     # utilisé dans Received:, EHLO, SRS
dane_enabled = true               # DANE sortant (exige un fournisseur [dns])
```

## Domaines d'envoi et clés DKIM

Chaque domaine pour lequel le serveur envoie a sa propre clé de signature, déclarée comme entrée de tableau :

```toml theme={null}
[[smtp.dkim_keys]]
domain = "example.com"
selector = "default"
key_path = "/etc/oximail/dkim/example.com.default.key"
```

Ajouter un domaine d'envoi est un rituel en trois étapes : générer la clé (`oximail setup dkim --domain <d>`), ajouter le bloc ci-dessus, et **publier l'enregistrement DNS**. Une clé sans son enregistrement TXT publié signe du courrier que les destinataires rejettent. `oximail check-dns --domain <d>` confirme l'ensemble des enregistrements ; la [page d'authentification du courrier](./email-auth-security) explique chacun.

La soumission valide à la fois le `MAIL FROM` d'enveloppe et le `From:` du corps contre les identités du compte authentifié : les utilisateurs ne peuvent pas envoyer sous des adresses qu'ils ne possèdent pas, et les adresses d'envoi supplémentaires se gèrent comme des alias (`oximail alias`, ADR-089).

## Router le sortant : les cartes de transport

Par défaut, le courrier sortant résout le MX de la destination et remet en direct. `[[smtp.transport_maps]]` surcharge le routage par motif de destination : c'est le mécanisme derrière l'[envoi par relais/smarthost](./outbound-relay) :

```toml theme={null}
[[smtp.transport_maps]]
pattern = "*"                              # attrape-tout ; ou un domaine précis
relay_host = "smtp.relay.example"
relay_port = 587
auth_user = "compte"
auth_password_file = "/etc/oximail/relay.password"   # fichier annexe 0600, jamais en ligne
```

Une route authentifiée est TLS obligatoire par construction. La remise par une route exécute la même [médiation d'extensions](../architecture/oximail-smtp) que la remise directe.

## La file sortante

Chaque soumission atterrit dans la file de remise persistante ; un worker réessaie avec backoff exponentiel (1 min à 24 h) jusqu'à l'expiration de la fenêtre d'abandon de **5 jours**, puis renvoie un avis de non-remise RFC 3464. Gérez-la avec :

```bash theme={null}
oximail queue ...                      # lister / inspecter / annuler des entrées
curl .../admin/v1/queue                # la même chose par l'API d'administration
curl .../admin/v1/queue/{id}/retry     # forcer un réessai immédiat
```

Une file qui grossit sans se vider signifie presque toujours un problème de DNS, de DNS inverse ou de réputation de votre côté : commencez par `oximail check-dns` et par la réponse du serveur distant enregistrée sur l'entrée de file. À noter : un [effacement](./compliance) de compte refuse volontairement de s'exécuter tant que ce compte a des entrées sortantes non remises ; les annuler par la surface de file le débloque.

## Limites de débit

`[rate_limit] smtp_outbound_per_hour` plafonne le volume sortant par compte, et la table `[rate_limit.destination_domains]` façonne le comportement par destination pour rester courtois avec les grands destinataires. Les deux sont surchargeables à l'exécution ([configuration](./configuration)).

## MX de secours

Une seconde machine avec `[mode] role = "backup"` accepte le courrier de vos domaines quand le principal est à terre, dans l'un des deux modes (file ou proxy synchrone : voir [la couche SMTP](../architecture/oximail-smtp)). L'assistant a un déroulé dédié Backup MX ; publiez-le en MX priorité 20. Un MX de secours **doit** connaître les destinataires valides ou rester en mode proxy : un secours qui accepte tout est une source de backscatter.

## Où vit le reste

* Verdicts et placement du courrier entrant : [anti-spam](./anti-spam).
* Le contrat DNS (SPF, DKIM, DMARC, MTA-STS, DANE) : [authentification du courrier](./email-auth-security).
* Archiver des copies des flux : [journalisation de conformité](./compliance).
* Le filtrage utilisateur à la remise : [règles & Sieve](./sieve-rules).
