145 lines
6.0 KiB
Bash
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 |