CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

S

swizzi

Grünschnabel
allo Zusammen,

wir haben eine Webbasierte Inventar Datenbank,aus dieser DB muss ich eine Mail generieren die mir anzeigt welche Geräte aus der Garantie laufen. Nun ist es so das diese Bash Abfrage die ich erstellt hab super funktioniert.( Mail Addresse wird auch hinterlegt)

Die nächste Anforderung ist die, dass jeder User automatisch eine Mail erhalten soll mit seinem Gerät welches er zur Zentrale bringen soll. Und wir uns den Aufwand sparen können jeden User selber anzuschreiben.


Wie schaffe ich es ein Script zu schreiben der aus jeder Zeile die Mail ADD nimmt und die gleiche spalte als Tabelle versendet?


z.B: soll die Zeile von AFS an ********** und die Zeile von ABFD an ********** versendet werden

Die Mail sieht wie folgt aus: http://www.bilder-upload.eu/show.php?file=0c1adf-1504776067.png


Hätte da jemand eine Idee?


SYSTEM; CENTOS 5.8 DB MySQL

Mein jetztiger Code sieht so aus:

Code:
#!/bin/bash
jahr=$(date -d "-1 year" +"%Y")
monat=$(date -d "+1 month" +"%m")
monatganz=$(date -d "+1 month" +"%B")
jahrganz=$(date -d "-1 year" +"%C%y")

rm -f ./Jahres_Pruefung_E_Check_Peripherals.html
touch ./Jahres_Pruefung_E_Check_Peripherals.html
echo "To: bla@dir.de" >> ./Jahres_Pruefung_E_Check_Peripherals.html

echo "Subject: Jahres_Pruefung_E_Check_Peripherals $monatganz $jahrganz" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "Content-Type: text/html; charset='us-ascii'" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<html>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<head>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "</head>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<body>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<h2>Hallo Zentrale!</h2>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<p>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "Folgende Liste stellt alle Geräte dar, die im naechsten Monat <b>($monatganz)</b> geprüft werden <b>sollen.</b><br>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "Fuer <b>jedes Gerät muss ein Ticket</b> angelegt werden, es sei denn, das Gerät wird nicht mehr verwendet!<br>"  >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<br>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "Der jeweilige Kunde ist als Customer im Ticket zu hinterlegen.<br>"  >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<br>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<b>Hinweis:</b> Ein Standardtext fuer das Ticket ist in C hinterlegt.<br>"  >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<a href='https://test.de'>C-Link</a>">> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "<br>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "</p>" >> ./Jahres_Pruefung_E_Check_Peripherals.html

mysql -h localhost -u glpi_user -pglpi glpi_db -t -H -e "SELECT glpi_users.name AS USER, glpi_useremails.email AS Email, glpi_peripherals.serial AS SerialNumber, glpi_peripherals.template_name AS Type, glpi_peripherals.name AS InventoryNumber,
glpi_peripherals.users_id AS UserID, glpi_states.completename AS Status,glpi_plugin_customfields_peripherals.e_check_nummer AS Echeck,glpi_plugin_customfields_peripherals.next_e_check AS Next_e_check,
glpi_plugin_customfields_peripherals.last_e_check AS Last_e_check,glpi_locations.name AS Ort,glpi_peripherals.locations_id AS LocationID
from glpi_peripherals
Left join glpi_plugin_customfields_peripherals ON (glpi_peripherals.id = glpi_plugin_customfields_peripherals.id)
Left join glpi_locations ON (glpi_locations.id = glpi_peripherals.locations_id)
LEFT JOIN glpi_states ON(glpi_peripherals.states_id = glpi_states.id)
LEFT JOIN glpi_useremails ON (glpi_peripherals.users_id = glpi_useremails.users_id)
Left join glpi_users On (glpi_peripherals.users_id = glpi_users.id)
Where ( glpi_plugin_customfields_peripherals.e_check_nummer IS NOT NULL)
and
(glpi_states.completename like '%e')
and
(glpi_peripherals.locations_id like '1')
and
glpi_plugin_customfields_peripherals.last_e_check like '$jahr-$monat-%'">> ./Jahres_Pruefung_E_Check_Peripherals.html;
echo "</body>" >> ./Jahres_Pruefung_E_Check_Peripherals.html
echo "</html>" >> ./Jahres_Pruefung_E_Check_Peripherals.html

/usr/sbin/sendmail bla@dir.de < ./Jahres_Pruefung_E_Check_Peripherals.html
 
Die Mail die erstellt wird sieht im ganzen so aus.
 

Anhänge

  • 0c1adf-1504776067.png
    0c1adf-1504776067.png
    25,2 KB · Aufrufe: 5
Hi,

das "einfachste":
das SQL-Query noch mal ohne "-H" ausgeben lässt und dann mittels awk, cut oder ähnlichem Zeile für Zeile durch arbeitest.


Das schönere:
in einer Skriptsprache deiner Wahl (Perl / PHP / Python) mit entsprechenden Funktionen arbeiten.

Bash ist schön für Filesystem-Geschichten, aber sowas würde ich dann doch eher mit einer der oberen Sprachen abfrühstücken.
Es sollte auch für alle genügend Tutorials im Netz sein um eine Datenbankabfrage hinzubekommen :) .

mfg
HeadCrash
 

Ähnliche Themen

dovecot und postfix Konfiguration Problem

Ubuntu X / dbus problem

Onlineumfrage programmieren (mehrseitige HTML Formular an PHP übergeben)

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Mondorescue über Cron-Job

Zurück
Oben