Automatische mail vanuit MySQL

Pagina: 1
Acties:

  • hduijn
  • Registratie: December 2001
  • Laatst online: 07-09 13:42
Vanuit een microsoft access client programma waarvan de tabellen gelinkt zijn aan een MySQL database maak ik standaard mailtjes die ik verstuur via mijn linux server. Hiervoor gebruik ik het onderstaande script.

Het script wordt iedere minuut gestart vanuit de crontab en pakt het eerste mailtje dat klaar staat om deze vervolgens te gaan verzenden (op die manier kan ik maximaal 1 mailtje per minuut automatisch laten verzenden.)

Nu is dit het eerste scriptje wat ik gemaakt hebt onder linux in combinatie met sendmail en MySQL en ik weet zeker dat dit op een veel betere manier mogelijk moet zijn. Kan iemand mij (en iedereen die dit leest) tips geven over hoe dit scriptje aan te passen? (een loop misschien?)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#! /bin/bash2

if mysql orderdb -e "SELECT email.verzend FROM email WHERE (email.verzend = -1) LIMIT 1;" | grep -s 'verzend' > /dev/null
    then
      echo "From: hduijn@hotmail.com" > /usr/local/scripts/dbmail
      echo -n "To: " >> /usr/local/scripts/dbmail
      mysql orderdb -r -N -B -e "SELECT email.email FROM email WHERE (email.verzend = -1) LIMIT 1;" >> usr/local/scripts/db
      echo -n "Subject: " >> /usr/local/scripts/dbmail
      mysql orderdb -r -N -B -e "SELECT email.subject FROM email WHERE (email.verzend = -1) LIMIT 1;" >> usr/local/scripts/
      echo "Content-type: text/html;" >> /usr/local/scripts/dbmail
      mysql orderdb -r -N -B -e "SELECT email.text FROM email WHERE (email.verzend = -1) LIMIT 1;" >> usr/local/scripts/dbm
      mysql orderdb -e "UPDATE email SET email.verzend=0, email.verzonden=-1 WHERE (email.verzend = -1) LIMIT 1;"
      /usr/sbin/sendmail -fhduijn@hotmail.com -F'Hugo van Duijn' -t < /usr/local/scripts/dbmail
fi