serveur_dovecot : remise LMTP fonctionnelle — flux courriel interne prouvé
Réglages Dovecot 2.4 qui débloquent la remise LMTP (durement gagnés au
premier flux réel) :
- userdb static { static_allow_all_users = yes } : sinon le userdb exige
un passdb et renvoie NOTFOUND (expéditeur/raw-mail-user externe absent
de l'annuaire) → rejet 550.
- mail_inbox_path vidé : le défaut 2.4 (/var/mail/%{user}, mbox root)
refusait l'autocréation de l'INBOX (Permission denied).
- Maildir explicite : mail_home + mail_path = %{home}/Maildir.
- Chemin par nom d'utilisateur : home identique côté LMTP (local-part) et
IMAP (adresse complète). Mono-domaine ; multi-domaine = raffinement.
Prouvé de bout en bout : envoi → Postfix (validation LDAP) → LMTP →
Dovecot → boîte → LU EN IMAP (auth LDAP, TLS step_ca). status=sent.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
e17ae54fda
commit
5846a08667
3 changed files with 21 additions and 3 deletions
|
|
@ -19,6 +19,14 @@
|
|||
mis à jour. Réévaluer Stalwart ~2028.
|
||||
|
||||
### Ajouté
|
||||
- **Flux courriel interne PROUVÉ de bout en bout (Étape A).** Envoi → Postfix (`edge-mta`,
|
||||
validation LDAP) → LMTP réseau → Dovecot (mail-store) → boîte Maildir → **lu en IMAP**
|
||||
(auth LDAP, TLS step_ca) : `status=sent`, message lu (sujet + corps). Réglages Dovecot 2.4
|
||||
qui débloquent la remise LMTP : `userdb static { static_allow_all_users = yes }` (sinon
|
||||
NOTFOUND pour l'expéditeur/raw-mail-user externe), `mail_inbox_path =` vidé (le défaut mbox
|
||||
`/var/mail` root refusait l'autocréation de l'INBOX), Maildir explicite (`mail_home` +
|
||||
`mail_path = %{home}/Maildir`), chemin par nom d'utilisateur (home identique côté LMTP
|
||||
local-part et IMAP adresse complète ; mono-domaine, multi-domaine = raffinement Étape B).
|
||||
- **Rôle `serveur_postfix` (Postfix 3.x) — MTA du nœud edge-mta.** Réception `:25`, cartes
|
||||
**LDAP** (validation des boîtes via l'attribut `mail`), remise **LMTP réseau** vers le nœud
|
||||
mail-store Dovecot (`virtual_transport = lmtp:inet:[…]:24`), TLS via **step_ca** (pont de
|
||||
|
|
|
|||
|
|
@ -15,8 +15,10 @@ serveur_dovecot_vmail_utilisateur: "vmail"
|
|||
serveur_dovecot_vmail_uid: 5000
|
||||
serveur_dovecot_vmail_gid: 5000
|
||||
serveur_dovecot_vmail_base: "/var/vmail"
|
||||
# Maildir par domaine/utilisateur (variables 2.4).
|
||||
serveur_dovecot_mail_path: "{{ serveur_dovecot_vmail_base }}/%{user | domain}/%{user | username}"
|
||||
# Maildir par utilisateur. Nom d'utilisateur seul → chemin IDENTIQUE pour la remise LMTP
|
||||
# (destinataire local-part) et l'accès IMAP (adresse complète). Mono-domaine ; pour du
|
||||
# multi-domaine il faudra préserver le domaine des deux côtés (raffinement Étape B).
|
||||
serveur_dovecot_mail_path: "{{ serveur_dovecot_vmail_base }}/%{user | username}"
|
||||
|
||||
# --- Annuaire/auth LDAP (vers serveur_openldap) ---
|
||||
serveur_dovecot_ldap_uris: "ldaps://id-ldap-01.{{ domaine_interne }}:636"
|
||||
|
|
|
|||
|
|
@ -8,9 +8,14 @@ protocols {
|
|||
|
||||
# --- Stockage Maildir (boîtes virtuelles) ---
|
||||
mail_driver = maildir
|
||||
mail_path = {{ serveur_dovecot_mail_path }}
|
||||
mail_home = {{ serveur_dovecot_mail_path }}
|
||||
mail_path = %{home}/Maildir
|
||||
# L'INBOX vit dans le Maildir (pas le /var/mail mbox par défaut de 2.4, root → refusé).
|
||||
mail_inbox_path =
|
||||
first_valid_uid = {{ serveur_dovecot_vmail_uid }}
|
||||
first_valid_gid = {{ serveur_dovecot_vmail_gid }}
|
||||
# Garder l'adresse complète (user@domaine) comme identité — domaines virtuels.
|
||||
auth_username_format = %{user}
|
||||
|
||||
# --- TLS (certificat step_ca, via le pont) ---
|
||||
ssl = required
|
||||
|
|
@ -30,6 +35,9 @@ passdb ldap {
|
|||
ldap_bind = yes
|
||||
}
|
||||
userdb static {
|
||||
# Répond pour TOUT utilisateur sans exiger un passdb (requis pour la remise LMTP,
|
||||
# y compris le contexte expéditeur/raw-mail-user qui n'est pas dans l'annuaire).
|
||||
static_allow_all_users = yes
|
||||
fields {
|
||||
uid = {{ serveur_dovecot_vmail_utilisateur }}
|
||||
gid = {{ serveur_dovecot_vmail_utilisateur }}
|
||||
|
|
|
|||
Loading…
Reference in a new issue