Ce que fait ce module #
Beaucoup d'éléments du serveur vous préviennent par courrier : un certificat qui expire, un disque qui se remplit, le rapport d'une tâche nocturne. Mais un serveur fraîchement installé ne sait pas envoyer ce courrier — ou il tente de l'envoyer directement et finit dans le dossier spam, quand il n'est pas carrément rejeté.
Le module smtp résout cela en configurant le courrier sortant de l'hôte face à un smarthost (un relais qui, lui, est autorisé à livrer : Amazon SES, un serveur de messagerie d'entreprise, votre fournisseur…). Il règle postfix pour qu'il relaie tout le courrier du système vers ce smarthost, stocke le mot de passe de manière sécurisée, réécrit l'expéditeur pour qu'il soit valide et vous permet de tester l'envoi afin de confirmer qu'il arrive — en vous signalant l'erreur réelle si quelque chose échoue.
Ayez sous la main les données du smarthost : hôte, port (généralement 587), et les identifiants s'il requiert une authentification. Le mot de passe ne se passe pas en ligne de commande : il est lu depuis stdin ou depuis le magasin de secrets, ainsi il ne reste pas dans l'historique.
Tâches courantes #
Choisissez ce que vous voulez faire. Chaque recette fournit la commande déjà écrite — il suffit de remplacer le smarthost et l'expéditeur par les vôtres, et de cliquer sur Copier.
1
Configurer le relais de courrier
Pointez le serveur vers votre smarthost pour que le courrier sorte pour de bon.
Connectez-vous en SSH à votre serveur avec l'utilisateur ubuntu.
Lancez la commande avec les données de votre smarthost. Le mot de passe est demandé via stdin, il ne reste donc pas dans l'historique :
$ sudo imaxe smtp configure \
--host email-smtp.eu-west-1.amazonaws.com \
--user AKIAIOSFODNN7EXAMPLE \
--from [email protected]Si votre smarthost ne demande pas d'authentification, omettez --user. Pour un port ou un mode TLS différent, ajoutez --port ou --no-tls.
[email protected]. Continuez avec la recette Envoyer un courrier de test.2
Envoyer un courrier de test
Confirmez qu'un message part et arrive avant de vous fier aux alertes.
Envoyez un courrier de test à une adresse où vous pourrez le vérifier :
$ sudo imaxe smtp test --to [email protected]Si vous omettez --to, le message est envoyé à l'expéditeur configuré. Vérifiez votre boîte de réception (et le dossier spam) pour confirmer la livraison.
3
Voir l'état du courrier
Vérifiez d'un coup d'œil si le relais est configuré et actif.
Un résumé du relais, du smarthost, de l'expéditeur et de l'état du MTA :
$ sudo imaxe smtp statusVous le voulez pour un script ou un tableau de bord ? Ajoutez --json pour une sortie lisible par machine :
$ sudo imaxe smtp status --json4
Voir la configuration effective
Consultez les réglages actifs sans exposer le mot de passe.
Affiche l'hôte, le port, l'utilisateur, l'expéditeur et le mode TLS réellement en usage (le mot de passe n'est jamais affiché) :
$ sudo imaxe smtp show5
Retirer le relais
Désactive le relayage et ramène postfix à son état antérieur.
Désactive le relais de courrier sortant et restaure la configuration de base de postfix :
$ sudo imaxe smtp removeconfigure.Le plus fréquent est que l'expéditeur ne soit pas vérifié sur le smarthost (SES exige de vérifier le domaine ou l'adresse de --from), ou que les identifiants soient incorrects. Lancez imaxe smtp test : il vous renvoie l'erreur réelle du MTA pour savoir exactement quoi ajuster.
Synopsis #
imaxe smtp <subcomando> [--host HOST] [--from CORREO] [flags]Toutes les sous-commandes nécessitent les privilèges root (utilisez sudo) car elles touchent à la configuration de postfix, écrivent dans /etc/imaxe/ et rechargent des services du système. Le mot de passe du smarthost ne se passe jamais en flag : il est lu depuis stdin ou depuis le magasin de secrets. Ajoutez --json à status ou show pour obtenir une sortie lisible par machine, adaptée au scripting.
Sous-commandes #
| Sous-commande | Rôle | Flags pertinents |
|---|---|---|
| configure | Configure le relais de courrier sortant face à un smarthost. Le mot de passe est lu via secrets/stdin. | --host, --port, --user, --from, --tls / --no-tls |
| test | Envoie un courrier de test et signale l'erreur réelle du MTA en cas d'échec. | --to |
| status | État : relais configuré, smarthost, expéditeur et MTA actif. | --json |
| show | Affiche la configuration effective, sans exposer le mot de passe. | --json |
| remove | Désactive le relais et restaure postfix. | — |
Arguments et flags #
| Flag | Type | Par défaut | Description |
|---|---|---|---|
| --host req. | string | — | Smarthost SMTP vers lequel relayer le courrier (p. ex. email-smtp.eu-west-1.amazonaws.com). Obligatoire pour configure. |
| --port | int | 587 | Port SMTP du smarthost. |
| --user | string | — | Utilisateur SMTP pour s'authentifier. S'il est omis, le relais est configuré sans authentification. |
| --from | string | — | Réécrit l'expéditeur de tous les messages (sender_canonical). Utile pour utiliser une adresse vérifiée sur le smarthost. |
| --tls / --no-tls | bool | --tls | Force le TLS sur la connexion avec le smarthost (par défaut). --no-tls le désactive. |
| --to | string | remitente | Dans test : destinataire du courrier de test. Par défaut, l'expéditeur configuré. |
| --json | bool | false | Dans status/show, émet le résultat sous forme de JSON sur stdout. |
Il n'existe pas d'option --password. L'identifiant est lu via stdin pendant configure ou depuis le magasin de secrets (password_secret, par défaut smtp), de sorte qu'il n'apparaît jamais dans l'historique ni dans la table des processus.
Fichiers et chemins #
| Chemin | Contenu |
|---|---|
| /etc/imaxe/smtp.yml | Configuration du module : hôte, port, TLS, utilisateur, expéditeur et référence au secret du mot de passe. |
| /etc/postfix/main.cf | Configuration de postfix que le module ajuste pour le relayage (relayhost, canonical de l'expéditeur…). |
| /var/log/mail.log | Journal de postfix avec chaque tentative de livraison et le motif des rejets. |
Exemple de smtp.yml :
enabled: true
host: email-smtp.eu-west-1.amazonaws.com
port: 587
tls: true
username: AKIAIOSFODNN7EXAMPLE
from: [email protected]
password_secret: smtpCodes de sortie et logs #
Chaque exécution renvoie un code que vous pouvez vérifier avec echo $? — utile pour enchaîner dans des scripts :
test, le courrier a été accepté pour livraison.Suivez le log de courrier en direct pendant que vous déboguez un envoi :
$ sudo tail -f /var/log/mail.log
$ sudo imaxe smtp test --to [email protected]Résolution des problèmes #
| Symptôme | Cause probable | Solution |
|---|---|---|
| Renvoie AUTH (code 4) | Utilisateur ou mot de passe du smarthost incorrects. | Vérifiez --user et relancez configure en saisissant à nouveau le mot de passe via stdin. |
| Renvoie SEND (code 5), expéditeur rejeté | L'adresse de --from n'est pas vérifiée sur le smarthost (typique de SES). | Vérifiez le domaine ou l'adresse chez le fournisseur et relancez le test. |
| Renvoie CONFIG (code 3) | Le relais n'est pas encore configuré sur cet hôte. | Lancez imaxe smtp configure avec les données du smarthost. |
| Le courrier sort mais atterrit en spam | Il manque l'alignement SPF/DKIM sur le domaine de l'expéditeur. | Configurez les enregistrements du fournisseur de courrier pour le domaine de --from. |
Bloqué sur le module Courrier ?
Écrivez-nous avec la sortie de « imaxe <module> status --json » et nous vous répondons rapidement.