1und1_Festnetzservicenummern/check_1und1_festnetzservice...

145 lines
6.0 KiB
Bash

#!/bin/sh
# pdftotext (in Synology DSM enthalten) und konfiguriertes ssmtp (Synology Systemeinstellung > Benachrichtigung) wird vorausgesetzt
# Variablen setzen:
# ---------------------------------------------------------------------
EMPFAENGER="mail@example.org"
ABSENDER='Absender Name <sender@example.org>'
server="https://hilfe-center.1und1.de/bin_dea/article/793873/"
# listname="DSL_Rufnummernliste_Service_und_Konferenzdienste.pdf " # bis 24.03.19
# listname="Rufnummernliste_Service-_und_Konferenzdienste_fuer_DSL-Vertraege.pdf" # bis 21.07.19
listname="DSL_Rufnummernliste_Service_und_Konferenzdienste.pdf" # ab 22.07.19
listeonline="${server}${listname}"
infosite="https://hilfe-center.1und1.de/rechnung-c85326/rechnungspositionen-c85331/berechnung-von-service--und-konferenzdiensten-a793873.html"
# ---------------------------------------------------------------------
mail="/tmp/search_1und1_festnetzservicenummernMail.txt"
error=0
IFS=$'\012' # entspricht einem $'\n' Newline ==> sonst streikt grep …
message="<p><b>! ! ! A C H T U N G ! ! ! </b></p>
1&1 hat die Konferenz-Telefonnummer [<font color=red><b>0049_tel_</b></font>] als Sonderrufnummer gelistet! <br><br>
Alle Anrufe werden ab dem <font color=red><b>_ab_</b></font> mit 2,9c/min berechnet. <br><br>
➜ <a href=\"$infosite\">Informationswebsite von 1&1</a> <br>
➜ <a href=\"$listeonline\">Verzeichnis der Konferenzdienstnummern von 1&1 (PDF-Liste)</a>"
# ---------------------------------------------------------------------
# Arbeitsverzeichnis auslesen und hineinwechseln:
# ---------------------------------------------------------------------
workdir=$(cd $(dirname $0);pwd)
cd ${workdir}
# ---------------------------------------------------------------------
mailcontex () {
# Mailheader:
echo "To: $EMPFAENGER" > "$mail"
echo "From: $ABSENDER" >> "$mail"
echo "MIME-Version: 1.0" >> "$mail"
echo "Content-Type: multipart/alternative; " >> "$mail"
echo ' boundary="some.unique.value.ABC123/geimist.eu"' >> "$mail"
echo "Subject: $subject" >> "$mail"
echo "" >> "$mail"
echo "This is a MIME-encapsulated message" >> "$mail"
echo "" >> "$mail"
echo "--some.unique.value.ABC123/geimist.eu" >> "$mail"
echo "Content-Type: text/html; charset=UTF-8" >> "$mail"
echo "" >> "$mail"
# Mail-Body:
echo "<html><head><title></title></head><body>" >> "$mail"
}
# aktuelle Liste von 1&1 holen:
# ---------------------------------------------------------------------
echo -n " ➜ alte Liste löschen ➜ "
rm "./${listname}"
if [ ! -f "./${listname}" ]; then
echo "okey"
else
echo "fehlgeschlagen ! ! !"
error=1
fi
echo -n " ➜ aktuelle Liste laden ➜ "
wgetinfo=$(wget "$listeonline" 2>&1)
# Warnung, wenn Liste nicht vorhanden / Downloadfehler:
# ---------------------------------------------------------------------
if echo "$wgetinfo" | grep -q "ERROR" || echo "$wgetinfo" | grep -q "404" || [ ! -f "./${listname}" ]; then
echo "fehlgeschlagen ! ! !"
subject="! ! ! ACHTUNG ! ! ! - 1&1 Rufnummernliste nicht gefunden"
errormessage="Rufnummernliste kann nicht geladen werden. Prüfe die Webadresse!"
error=1
else
echo "okey"
fi
# PDF-Liste in durchsuchbaren Text konvertieren:
# ---------------------------------------------------------------------
echo -n " ➜ PDF-Liste extrahieren ➜ "
convertLOG=$(/bin/pdftotext -layout ${listname} DSL_Rufnummernliste_Service_und_Konferenzdienste.txt 2>&1)
if [ -f "./DSL_Rufnummernliste_Service_und_Konferenzdienste.txt" ]; then
echo "okey"
else
subject="! ! ! ACHTUNG ! ! ! - 1&1 Rufnummernliste Kovertierfehler"
echo "fehlgeschlagen ! ! !"
echo " convertLOG: $convertLOG"
errormessage="DSL_Rufnummernliste konnte nicht konvertiert werden."
error=1
fi
# Error-Mail:
# ---------------------------------------------------------------------
if [ $error -eq 1 ]; then
mailcontex
echo "$errormessage" >> "$mail"
# Body schließen
echo "</div></body>
</html>" >> "$mail"
echo "" >> "$mail"
# Mailen (ssmtp):
ssmtp "$EMPFAENGER" < "$mail"
# DSM-Notification:
synodsmnotify @administrators "! ! 1und1 ! ! " "Rufnummernliste kann nicht geladen werden!"
exit 1
fi
# Nummern suchen / Info mailen:
# ---------------------------------------------------------------------
echo -e; echo -e; echo " ➜ Nummern suchen / Info mailen:"
for i in $(cat gesuchte_Nummer.txt)
do
if echo "$i" | grep -q '^#'; then # auskommentierte Zeilen überspringen
continue
fi
echo -e; echo " ➜ gesucht wird $i"
confnr=$(echo $i | awk '{print $1}')
if [ $(cat DSL_Rufnummernliste_Service_und_Konferenzdienste.txt | grep $confnr) ]; then
Berechnung_ab=$(grep -a $confnr DSL_Rufnummernliste_Service_und_Konferenzdienste.txt | awk '{print $2}')
message=$(echo $message | sed "s/_tel_/${i}/g" | sed "s/_ab_/${Berechnung_ab}/g")
echo " gefunden ➜ wird gemailt"
subject="! ! ! ACHTUNG ! ! ! - 1&1 hat Konferenznummer gelistet"
mailcontex
echo "$message" >> "$mail"
# Body schließen
echo "</div></body>
</html>" >> "$mail"
echo "" >> "$mail"
# Mailen (ssmtp):
ssmtp "$EMPFAENGER" < "$mail"
# DSM-Notification:
synodsmnotify @administrators "! ! 1und1 ! ! " "$subject"
echo 2 > /dev/ttyS1; sleep 0.1; echo 3 > /dev/ttyS1; sleep 0.1; echo 2 > /dev/ttyS1; sleep 0.1; echo 2 > /dev/ttyS1
else
echo " nicht gefunden ➜ alles gut :-)"
fi
done
exit 0