corrections divers
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user