Oui c’est une idée. Mais ce n’est pas très simple d’utilisation.
J’ai pensé utiliser un alias de groupe sur le groupe Tous les utilisateurs mais le soucis est que l’adresse serait utilisable par des personnes (ou bot) extérieur, et j’aimerais éviter cela.
#!/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
J’ai trouvé une solution qui fonctionne et je partage ici si ça peut intéresser d’autres personnes.
J’ai donc créé un alias de groupe pour le groupe cn=all_users via phpLDAPadmin.
Il faut ensuite modifier le fichier /etc/postfix/main.cf et rechercher la ligne smtpd_recipient_restrictions = pour ajouter juste après permit_mynetworks, :
On fait un restart ou un reload de postfix : systemctl restart postfix
Et pour finir et à faire après chaque modification des fichiers afin de créer ou mettre à jour les fichiers de mappage de postfix: postmap /etc/postfix/protected_destinations postmap /etc/postfix/insiders
Et voilà. Seules les adresses appartenant aux domaines enregistrés dans le fichier insiders pourrons envoyer des mails aux alias inscrits dans le fichier protected_destinations.