+3
−1
+212
−21
Loading
Sans relais, l'instance tourne mais n'envoie rien : ni invitation, ni
activation de compte, ni réinitialisation de mot de passe. L'installateur
le proposait uniquement sous forme de six lignes commentées dans le .env,
que personne ne décommente au bon moment.
La question est posée dans les deux modes. En complétion, elle n'est
posée que si aucun SMTP_HOST n'est déclaré — c'est le cas le plus
fréquent, l'envoi de courriel n'étant presque jamais prêt le jour où
l'on installe.
TROIS CONTRAINTES DU PRODUIT, DITES AVANT LA SAISIE PLUTÔT QU'APRÈS.
TLS est exigé sans dérogation (requireTLS, TLS 1.2 minimum) : le produit
refuse une session en clair même quand le relais l'accepte. Or « relais
interne » désigne le plus souvent un MTA sur le port 25 sans STARTTLS,
qui ne conviendra donc pas. L'avertissement tombe avant la première
question, pas au premier envoi raté.
L'authentification est facultative — un relais qui reconnaît ses clients
à leur adresse réseau ne donne pas d'identifiants. Répondre « non » n'est
pas un contournement, et l'avertissement sur le mot de passe en clair ne
s'affiche alors pas : il n'y a pas de secret à protéger.
Les réglages de la console d'instance priment EN BLOC dès qu'un hôte y
est saisi, et chiffrent le mot de passe. Le .env est donc le chemin
d'amorçage, pas le bon endroit pour un secret : qui ne veut rien laisser
en clair décline ici et saisit tout depuis la console. Le script le dit.
Le mot de passe SMTP est écrit entre apostrophes. Sans elles, Compose
coupe la valeur au premier croisillon : « mdp avec espace #et suite »
devenait « mdp avec espace », et l'authentification échouait sur un
serveur pourtant bien configuré. Vérifié par « docker compose config ».
Le défaut du chiffrement suit le port — implicite sur 465, STARTTLS
ailleurs — parce que proposer l'inverse serait proposer une erreur.
Vérifié de bout en bout : le .env produit, relu par Compose, donne bien
« mailConfigured: true » à une API démarrée dessus, et « false » sans le
bloc. Parcours testés sur pseudo-terminal dans les deux langues, avec et
sans authentification, en création comme en complétion.
Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>