• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] Mail / Betreff <= Auslesen via Script

suwelo

Member
Moin zusammen,
ich hab mal wieder eine Frage.

In einem Unterforum habe ich eine Anfrage gestellt, wie es möglich wäre ohne mehr Cron Jobs ein Script via Mail Auszulösen.

Für die Interessierten an dem Thema, sind die letzten 4 Threads interessant

https://linux-club.de/forum/viewtopic.php?f=90&t=123391


Ich möchte gern aus dem Betreff der Mail die gültige IP Adresse auslesen, als "Array" oder Speicherelement in meinetwegen

Code:
/tmp

(zwischen-) speichern bzw. vor dem Überschreiben auf Änderung prüfen um eventuelle Änderung bekannt zugeben.


Das jetzige Prinzip funktioniert tadellos.

Einziges Problem ist, in meinem jetzigen Script bemühe ich 3 unabhängige Dienste im Internet, meine IP Adresse herauszufinden, das Ergebnis zwischen zu speichern und bei Änderung die IP Adressänderung den "Dyn Diensten" bekannt zu geben.

Kann ich überhaupt aus einer Mail heraus, die an einen Dienst gesendet wird, der als Script funktioniert und eine IP Adresse im Betreff hat, die IP Adresse aus dem Betreff der Mail ermitteln, um den Betreff in meine benötigten Bestandteile zu zerlegen und weiter zuverarbeiten?

Ich bin echt kein REGEX Fan, denke aber dass ich mit meinem Vorhaben da irgendwie ein bisschen durch muss?

Wie ich User Eingaben in einem Script am Terminal abfangen und verwerten kann, ist mir einigermaßen klar.

Versteht jemand mein Kauderwelsch?

:schockiert:
 
A

Anonymous

Gast
Ich verstehe deinen ganzen Lösungsansatz nicht recht.
Desshab versuche ich mal zusammenzufassen was ich aus deinen Posts verstanden habe:

  • du hast eine Fritzbox und mehrere DynDNS Diensten, also soll dein Router aus dem Netz über mehrere Namen erreichbar sein.
  • nur einer dieser Dienste arbeitet aktualisiert sich automatisch, wenn du einen Fritzbox hast, wahrscheinlich myfritz.net
  • allen anderen musst du per Script die neue IP des Routers mitteilen, zB. nach jedem Reset der DSL-Verbindung, usw .
  • du lässt dir aus dem Router dann eine Mail mit der neuen IP zukommen und hast irgendwie Probleme das auszuwerten und unter einen Hut zu bekommen.
Ist das soweit richtig?

Ein einfaches Script das zB. alle 5 Minuten mittels nslookup deine itzelpritzel.myfritz.net Adresse abfragst, bringt dir zuverlässig sowohl von internem Netz aus, als auch von extern jederzeit die aktuelle IP deines Routers.
Und wenn sich diese IP gegenüber der letzten Abfragen geändert hat, dann musst du diese neue IP dann an alle anderen Dienste übermitteln. fertig.
und wenn ich den obrigen Beitrag richtig interpretiere, hast du so was ähnliches auch aktuell schon 3 fach am laufen und funktioniert tatellos

Warum wisst du dieses einfach und sichere Verfahren denn jetzt änderen und irgendwie hochkompliziert über cron Mails auswerten die dir der Router zuschickt? Ob ein cron jetzt über DNS die Adresse direkt abfragt, oder der cronjob fehleranfällige komplizierte Aktionen ausführen um aus wer weiß wieviel Mails eine aktuell richtige IP zu ermitteln, oder warum nicht gleich regelmäßig bei deinem Internetprovider in der Datenbank nachschauen, was du aktuell für eine IP bekommen hast. ;)
Wo liegt denn da genau das Problem an deiner derzeitigen Lösung, warum soll nicht das Einfachste hier das Beste sein.

robi
 
OP
suwelo

suwelo

Member
Hallo robi,

du lässt dir aus dem Router dann eine Mail mit der neuen IP zukommen und hast irgendwie Probleme das auszuwerten und unter einen Hut zu bekommen.

prinzipiell hast Du das bis hier her richtig interpretiert.

Ich denke jedoch, dass die Mail auf den Betreff von dem empfangenden Script geprüft werden könnte um aus dem Betreff der Mail, die bis zur nächsten Unterbrechung gültige IP Adresse herauszubekommen.
Die IP Adresse wird als Variable übergeben und weiterverarbeitet.
Eine Mail ist zudem in Felder aufgeteilt, Sender, Recipient, Subject.

Code:
Subject
Internet-Adresse: ip.v4.addr.ess, [ip:v6:prae:fix::2]

Bisher ist die Mail nur Auslöser eines Scripts.
Über Externe Dienste wird aus dem Script heraus die am Router vorhandene neue externe IP Adresse ermittelt.
Das war bisher der zwei stündige CronJob.
Jetzt tut das der Empfänger der Mail mit den gleichen Methoden aus dem Script, das vorher bereits als CronJob gelaufen ist.


Wenn die Mail an den Script Empfänger geht, dann müsste es auch möglich sein die Mail nur für den Augenblick wo die am Script Empfänger Aufschlägt, auf den Betreff zu prüfen.
Nur der Betreff.
Empfänger und Sender sowie der Content sind danach völlig gleichgültig.

Ich würde so die Adressermittlung über die Externen Dienste umgehen weil ich die neue IP Adresse direkt aus dem Betreff der Status Mail von meinem Router habe.
Aus erster Hand und nicht aus 2,3 oder 4 Hand.
 
OP
suwelo

suwelo

Member
Hallo Gräfin Klara,

Wie nennt sich /pfad/file, dass das mail beinhaltet?

Willst Du auf den Posteingangsordner des Users in

Code:
$USER/.maildir/juhuu-box

verweisen?

Eine "After Queue" Prüfung über das Script?

Deute ich das einigermaßen passend hier hinein?


Never change a running system

:D
 
OP
suwelo

suwelo

Member
Moin zusammen,
ich will das Thema vorerst mal auf "beendet" stellen.

Einige Tests, die ich bisher mit einer anderen "unique" Email Adresse und Scripten ausprobiert habe, schlugen fehl was mich vermuten lässt, dass ausgelieferte Mail; auch ausgeliefert bedeutet so dass ein "Bash" Script den übermittelten Betreff kaum auslesen kann.

Eine After queue Prüfung ist mir zu dumm, da die Mail(s) im USER Verzeichnis "TLS encoded" vorliegen und ich im Script erst mal die "richtige" Mail finden und mit "TLS decoden" müsste.

Evtl. komme ich ja auf eine andere, einfachere Idee.

Danke für eure Hilfe..

:D
 
Oben