corrections divers

This commit is contained in:
2026-03-07 15:01:07 +01:00
parent 6cd412fb5e
commit 45400c190c
2 changed files with 125 additions and 25 deletions

View File

@@ -29,17 +29,23 @@ DEBIAN_FRONTEND=noninteractive apt install -y curl bc
# --- 3. RÉCUPÉRATION ET TEST DU MOT DE PASSE SMTP ---
PASS_FILE=".smtp_pass"
# Ici, PASS_FILE_ORI pointe probablement vers /etc/msmtprc ou une sauvegarde
PASS_FILE_ORI="/etc/msmtprc"
AUTH_OK=false
while [ "$AUTH_OK" = false ]; do
# 1. Tentative de lecture depuis le fichier
if [ -f "$PASS_FILE" ] && [ -s "$PASS_FILE" ]; then
SMTP_PASS=$(head -n 1 "$PASS_FILE")
echo "📄 Mot de passe lu depuis le fichier $PASS_FILE."
# 1. Tentative d'extraction depuis le fichier de config existant
if [ -f "$PASS_FILE_ORI" ]; then
# On cherche la ligne commençant par 'password', on ignore les espaces/tabulations,
# et on récupère la deuxième colonne.
SMTP_PASS=$(grep -E "^password[[:space:]]+" "$PASS_FILE_ORI" | awk '{print $2}')
fi
if [ -n "$SMTP_PASS" ]; then
echo "📄 Mot de passe extrait depuis $PASS_FILE_ORI."
else
# 2. Sinon, saisie manuelle
echo -n "🔑 Mot de passe SMTP pour ${SMTP_USER} : "
# 2. Sinon, saisie manuelle si le fichier n'existe pas ou ne contient pas de password
echo -n "🔑 Mot de passe SMTP non trouvé. Entrez le pour ${SMTP_USER} : "
read -s SMTP_PASS
echo ""
fi
@@ -62,7 +68,7 @@ account default : test
EOF
chmod 600 /tmp/.msmtp_test
# Test d'envoi réel (indispensable pour valider)
# Test d'envoi réel
echo "Test de configuration" | msmtp --file=/tmp/.msmtp_test -t "$DEST_EMAIL" 2>/dev/null
if [ $? -eq 0 ]; then
@@ -71,9 +77,11 @@ EOF
rm /tmp/.msmtp_test
else
echo "❌ Échec de l'authentification SMTP."
if [ -f "$PASS_FILE" ]; then
echo "⚠️ Le mot de passe dans $PASS_FILE est incorrect ou le serveur est injoignable."
mv "$PASS_FILE" "${PASS_FILE}.old" # On renomme pour forcer la saisie manuelle au prochain tour
# Si le password extrait était mauvais, on vide la variable pour forcer la saisie au prochain tour
if [ -f "$PASS_FILE_ORI" ]; then
echo "⚠️ Le mot de passe extrait de $PASS_FILE_ORI est incorrect."
SMTP_PASS=""
PASS_FILE_ORI="/dev/null" # On "désactive" la lecture fichier pour ce tour
fi
rm /tmp/.msmtp_test
fi