Bon voici un script (minimal) qui fonctionne
Créer un fichier mail-all-users.sh
#!/bin/bash
# Test validité des arguments
if [[ $# -ne 2 ]]; then
echo "Nombre argument incorrect"
echo "2 arguments nécessaires : le sujet et le nom du fichier du corps du mail"
exit
else
echo "Nombre d'arguments correct"
# Test que le second argument soit un fichier
if [[ -f $2 ]]; then
echo "Second argument valide"
else
echo "Le fichier indiqué n'est pas valide"
exit
fi
fi
corps=$(cat $2)
users=$(ldapsearch -x -LLL uid=* | grep uid: | cut -d: -f2)
for line in $users
do
echo $corps | mail -s "$1" $line
done
Il suppose que le corps du mail soit saisi dans un fichier au même niveau d’arborescence que le script
Lancement du script
mail-all-users.sh parametre1 parametre2
Avec paramètre 1 le sujet du mail et paramètre 2 le nom du fichier contenant le corps du mail
Exemple pour un fichier corps se nommant test_corps.txt au même niveau d’arborescence que le script, ça donnerait
mail-all-users.sh "sujet du jour" test_corps.txt
Voilà c’est fait en vitesse mais ça doit répondre à la demande