Hallo...
gibt es eine Möglichkeit, eine automatisch generierte Benachrichtigungsmail versenden zu lassen, nachdem eine Datei in ein bestimmtes Verzeichnis per FTP auf den Webserver geladen wurde?
Ich stelle mir das so vor: jemand lädt ein jpg-Bild hoch, der Server denkt sich, aha, neue Datei, und verschickt dann eine Nachricht per email, dass sich eine neue Datei auf dem Webserver befindet.
Gibt es dafür eine Lösung?!
VG Chris
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
-
- Beiträge: 146
- Registriert: 20. Mär 2007, 10:08
- Wohnort: Tampere/ Finnland
- Kontaktdaten: Website
Hallo,
Lösung nicht aber vielleicht Idee:
Eine PHP Datei die per cronjob Täglich gestartet wird Öffnet den Ordner X und Zählt den Inhalt und Speichert das in einer txt Datei. Am nächsten Tag das gleich aber jetzt halt immer das Ergebnis aus der txt mit verglichen und wenn die Anzahl anders ist geht halt eine mail raus.
Cheffchen
Lösung nicht aber vielleicht Idee:
Eine PHP Datei die per cronjob Täglich gestartet wird Öffnet den Ordner X und Zählt den Inhalt und Speichert das in einer txt Datei. Am nächsten Tag das gleich aber jetzt halt immer das Ergebnis aus der txt mit verglichen und wenn die Anzahl anders ist geht halt eine mail raus.
Cheffchen
So könnte mans machen.
Man könnte auch ne Funktion draus machen und sie ins Template einbauen, dann wird jedes mal wenn die Seite aufgerufen wird geprüft.
Code: Alles auswählen
0
<?php
ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);
/*
Überprüft die Anzahl von Dateien eines bestimmten Dateityps und verschickt eine Email wenn sich diese seit dem letzten Aufruf verändert hat.
Das Script benutzt die erste Zeile um die Anzahl der Dateien zu speichern.
Also bitte nicht löschen. ;)
*/
$directory = ""; // Ordner in dem die Dateien gezählt werden sollen
$script = "/var/www/html/count.php"; // Absoluter Pfad und Dateiname des Scripts
// Letzen Wert einlesen
$f = file_get_contents($script);
$f = explode("\n",$f,2);
$f[0] = trim($f[0]);
// Wenn im Ordner Dateien bestimmten Typs vorhanden zähle diese (in diesem Falle .jpg Dateien)
if (glob("" . $directory . "*.jpg") != false) {
$filecount = count(glob("" . $directory . "*.jpg"));
}
else {
$filecount = 0;
}
// Wenn die Anzahl der Dateien sich seit dem letzten Aufruf des Scripts geändert haben, schreibe neue Anzahl.
if ($f[0] != $filecount) {
$f[1] = trim($f[1]);
file_put_contents($script,$filecount."\n".$f[1]);
mail('mail@mail.de', 'Dein Betreff', 'Deine Nachricht'); // und Email versenden
}
?>
Zuletzt geändert von jones am 10. Jan 2011, 22:15, insgesamt 1-mal geändert.
-
- Beiträge: 146
- Registriert: 20. Mär 2007, 10:08
- Wohnort: Tampere/ Finnland
- Kontaktdaten: Website
Danke für eure Antworten!
Mir wäre schon wichtig, dass allein der Uploadvorgang unmittelbar den Versand der email auslöst.
Das obige Skript habe ich jetzt angepasst (also "Absoluter Pfad und Dateiname des Scripts" und meine email-Adresse) aber irgendwie funzt das noch nicht...
Wie schon gesagt sollte nach dem Upload die Nachricht verschickt werden und nicht nach Aufruf einer bestimmten Website. Wodurch wird dieses Skript überhaupt aufgerufen?
VG Chris
Mir wäre schon wichtig, dass allein der Uploadvorgang unmittelbar den Versand der email auslöst.
Das obige Skript habe ich jetzt angepasst (also "Absoluter Pfad und Dateiname des Scripts" und meine email-Adresse) aber irgendwie funzt das noch nicht...
Wie schon gesagt sollte nach dem Upload die Nachricht verschickt werden und nicht nach Aufruf einer bestimmten Website. Wodurch wird dieses Skript überhaupt aufgerufen?
VG Chris
Richtig.Cheffchen hat geschrieben:Hallo,
Der Script oben Starten über ein cronjob zu festen Zeiten (Täglich, Stündlich oder...)
Cheffchen
Du kannst, wenn du keine Crons ausführen darfst, den Code oben auch in dein Template einbauen. So kannst du die Seitenbesucher nutzen um das Skript regelmäßig auszuführen. Dann musst du allerdings eine Datei anlegen (chmod:644) und sie hier einbinden:
z.B.
Code: Alles auswählen
$script = "/var/www/html/counter.txt";
Grüße
-
- Beiträge: 146
- Registriert: 20. Mär 2007, 10:08
- Wohnort: Tampere/ Finnland
- Kontaktdaten: Website
Hei,
danke für die Info!
wir haben jetzt unseren Vertrag beim Provider erweitert und können jetzt cronjobs ausführen. Doch nach einigen Stunden Herumprobieren war ich gestern mit meinem Latein am Ende...
Ich bekam laufend Fehlermeldungen per email. Die letzte begann mit
Could not open input file.
Der Provider sagt, dass der Fehler auf das Skript zurückzuführen ist und kann daher keinen weiteren Support geben.
In das obige Skript habe ich in der ersten Zeile den Pfad zu PHP eingebunden, wie es in der Anleitung im Kundenmenü stand:
#!/usr/local/bin/php
Das Skript wäre uns sehr wichtig. Ich wäre für weitere Hilfe sehr dankbar.
VG Chris
danke für die Info!
wir haben jetzt unseren Vertrag beim Provider erweitert und können jetzt cronjobs ausführen. Doch nach einigen Stunden Herumprobieren war ich gestern mit meinem Latein am Ende...
Ich bekam laufend Fehlermeldungen per email. Die letzte begann mit
Could not open input file.
Der Provider sagt, dass der Fehler auf das Skript zurückzuführen ist und kann daher keinen weiteren Support geben.
In das obige Skript habe ich in der ersten Zeile den Pfad zu PHP eingebunden, wie es in der Anleitung im Kundenmenü stand:
#!/usr/local/bin/php
Das Skript wäre uns sehr wichtig. Ich wäre für weitere Hilfe sehr dankbar.
VG Chris
Ich möchte anmerken, dass der Ansatz von jones unzuverlässig ist, in dem Sinne, dass die Anzahl der Dateien ein schlechter Gradmesser ist, ob sich etwas geändert hat oder nicht.
Wenn jetzt jemand eine Datei zwischendurch wegputzt und eine kommt dazu, noch bevor der nächste Cron durchlaufen ist, geht's schief. Wobei das jetzt sehr akademisch sein mag. Für solche Operationen sind eigentlich Hashes das Mittel der Wahl.
Ich würde den Cronjob nutzen, um den Verzeichnisinhalt samt Dateigrößen und -Dateiänderungsdaten in einen Hash umzuwandeln und mir diesen merken, z. B. in einer Minidatenbank oder eben in einer Textdatei (die muss natürlich außerhalb des Überwachungsordners) liegen.
--- Und hier stand Quatsch: Hab das mit FTP überlesen. ---
Wenn es kein super vollgestopfter Ordner ist, der da überwacht werden soll, kannst Du den Cron ja auf eine Minute stellen, sollte nicht weh tun.
Wenn jetzt jemand eine Datei zwischendurch wegputzt und eine kommt dazu, noch bevor der nächste Cron durchlaufen ist, geht's schief. Wobei das jetzt sehr akademisch sein mag. Für solche Operationen sind eigentlich Hashes das Mittel der Wahl.
Ich würde den Cronjob nutzen, um den Verzeichnisinhalt samt Dateigrößen und -Dateiänderungsdaten in einen Hash umzuwandeln und mir diesen merken, z. B. in einer Minidatenbank oder eben in einer Textdatei (die muss natürlich außerhalb des Überwachungsordners) liegen.
--- Und hier stand Quatsch: Hab das mit FTP überlesen. ---
Wenn es kein super vollgestopfter Ordner ist, der da überwacht werden soll, kannst Du den Cron ja auf eine Minute stellen, sollte nicht weh tun.
-
- Beiträge: 146
- Registriert: 20. Mär 2007, 10:08
- Wohnort: Tampere/ Finnland
- Kontaktdaten: Website