Import initial.

Envoie un mail  tous les possesseurs de compte sur zamok. Tous les adhrents
ayant une adresse mail @crans.org le reoivent.
M@nu.

darcs-hash:20040824202807-1d643-b84d265a3094bd581af70f07478b110ec41abb97.gz
This commit is contained in:
sabban 2004-08-24 22:28:07 +02:00
parent 0a675633a6
commit 0a0b6ddf07

67
mailcrans.sh Executable file
View file

@ -0,0 +1,67 @@
#! /bin/sh
# The author of this code is Manuel Sabban <manu@feyd-rautha.org>
#
# Copyright (c) 2002, 2004 Vincent Bernat, Manuel Sabban.
#
# Permission to use, copy, and modify this software with or without fee
# is hereby granted, provided that this entire notice is included in
# all source code copies of any software which is or includes a copy or
# modification of this software.
#
# THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
# IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY
# REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
# MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
# PURPOSE.
# Envoie un mail à tous les adhérents ayant un compte sur zamok, c'est-à-dire
# ceux qui ont une adresse mail en @crans.org
# Emplacement temporaire de la liste d'adresses email
EMAILS=/tmp/emails$$
# Fichier contenant les adresses vers lesquelles l'envoi n'a pas réussi
FAILED=/tmp/failed$$
# Canevas du mail
CANEVAS=/tmp/canevas$$
# En cas d'interruption du script, on efface les fichiers temporaires
trap "rm -f $EMAILS $CANEVAS 2> /dev/null ; exit 5" 1 2 15 0
# Construction de la liste des adresses mails
cat /etc/passwd |grep -v corbeau | awk -F":" '{if ($3>499) print $1"@crans.org"}'>$EMAILS
# Construction du canevas du mail
echo -n "Subject: " > $CANEVAS
${EDITOR:-"vi"} $CANEVAS
echo >> $CANEVAS
# Edition du mail
${EDITOR:-"vi"} $CANEVAS
echo >> $CANEVAS
# Visualisation du mail
cat $CANEVAS
echo
echo '--------------'
echo 'Ce mail va être envoyé à tous les adhérents. Entrée pour continuer, Ctrl-C pour arrêter.'
read
# Envoi du mail à toutes les adresses comprises dans `EMAILS'
# Les envois non réussis sont stockés dans $FAILED.
rm -f $FAILED 2> /dev/null
while read EMAIL
do
echo -n "Envoi à $EMAIL... "
cat $CANEVAS | formail -I "To: $EMAIL" | sendmail $EMAIL || (echo -n "Pas " ; echo $MAIL >> FAILED)
echo "OK"
done < $EMAILS
if [ -f $FAILED ]; then
echo "Il y a eu des erreurs, voir $FAILED pour les adresses emails qui ont posé problème."
fi
echo "Terminé."