Envoyer un mail à tous les utilisateurs du système

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 :wink:

2 Likes