1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
#!/bin/sh
# pour entete dans le log
echo '########' >> /var/log/newmail
echo $(date +%Y.%m.%d--%H:%M)" "$0" se lance" >> /var/log/newmail
#
. /root/scripts/.pass
# charger les variables d'environnement
ret=0
# genere les script SQL
# act_id | act_ens_id | act_om_id | act_value | act_number | act_date_add | act_liste_generated | act_done
gen()
{
[ -f /tmp/tmp.sql ] && rm /tmp/tmp.sql
cat > /tmp/tmp.sql << EOT
use SeeBadge_ens ;
select act_id,act_value,act_value2 from action_marketing where act_done=1 and act_liste_generated=1 limit 1,1 \G
select * from liste_marketing ;
EOT
}
#Ajouter un select count
# pour en gerer la variable et
# generer une boucle de gen_listeadresses + envoi_mail
# cree la liste d'adresses de destination du mail
# en chargeant les variables TITRES, CORP, ID, et listeadresses
gen_listeadresses()
{
mysql -u root -p$pass < /tmp/tmp.sql > /tmp/datas.tmp
listeadresses=$(grep '@' /tmp/datas.tmp | awk '{print $2}' | sed 's/mail\ //;s/$/,/g')
TITRE=$(grep "act_value:" /tmp/datas.tmp | sed 's/.*act_value://')
CORP=$(grep "act_value2:" /tmp/datas.tmp | sed 's/.*act_value2://')
ID=$(grep "act_id:" /tmp/datas.tmp | sed 's/act_id://;s/.*act_value2://;s/act_val.*//;s/\t//')
if [ $(echo ${ID} | grep "[0-9]") = 1 ] ; then
# on a pas de mail a envoyer
exit 0
fi
# rentrer la act_liste_generated=0 dans la base
cat > /tmp/tmp.sql << EOT
use SeeBadge_ens ;
update action_marketing set act_liste_generated=0 where act_id=${ID} ;
EOT
mysql -u root -p$pass < /tmp/tmp.sql
# une liste de mail a ete trouvee
}
#genere le corp du mail depuis la variable CORP
gen_corp()
{
(
echo "<html><body>"
echo ${CORP}
echo "</body></html>"
) > /tmp/NEWMAIL.htm
}
# realise la mise en file d'attende des mails pour laisser la main
# a postfix pour l'envoi concret
envoi_mail()
{
gen_corp
# pour tests :
# echo ${CORP} | mutt -s "$(echo ${TITRE})" -b ${listeadresses} contact@citymediacard.eu
# fin tests ;
(
echo "From: contact@citymediacard.eu"
echo "bcc: ${listeadresses}"
echo "subject: ${TITRE}"
echo "MIME-Version: 1.0"
echo "Content-Type: text/html"
echo "Content-Disposition: inline"
cat /tmp/NEWMAIL.html
) | mutt -b ${listeadresses} contact@citymediacard.eu
cat > /tmp/tmp.sql << EOT
use SeeBadge_ens ;
update action_marketing set act_done=0 where act_id=${ID} ;
EOT
mysql -u root -p$pass < /tmp/tmp.sql
# les emails sont tous en file d'attente postfix
}
# CORP DE SCRIPT
# garder l'historique des execution de check.
gen
if [ $? -eq 0 ] ; then ret=$? ; echo "Pas de mails a emettre" >> /var/log/newmail ; else exit $? ; fi
gen_listeadresses
if [ $? -eq 0 ] ; then ret=$? ; echo "gen_listeadresses" >> /var/log/newmail ; else exit $? ; fi
echo $(date +%Y%m%d-%H%M)" "$0" genere la liste de mail" >> /var/log/newmail
envoi_mail
if [ $? -eq 0 ] ; then ret=$? ; echo "envoi_mail" >> /var/log/newmail ; else exit $? ; fi
echo $(date +%Y%m%d-%H%M)" "$0" envoi les mails a ${listeadresses} " >> /var/log/newmail
[ -f /tmp/NEWMAIL.html ] && rm /tmp/NEWMAIL.html
[ -f /tmp/tmp.sql ] && rm /tmp/tmp.sql
exit $ret
# sortie 0 = ok |
Partager