Wenn Info vorhanden, mail() einmal am Tag abschicken

Oder andere Überschrift: mail() zeitgesteuert abschicken.

Hallo,

ich wollte mir etwas basteln, wo ich gerne von Euch wissen würde, wie ihr da rangehen würdet.

Also, ich habe ein „Gästebuch“, wo Besucher Einträge hinterlassen können.
Jetzt könnte ich natürlich nach jedem erfolgten Gästebucheintrag eine Benachrichtigung an mich senden lassen.
Das ist aber lästig bei vielen Einträgen.
Deswegen dachte ich, dass ich, je nachdem - beispielsweise einmal am Tag eine Email bekomme, wenn denn überhaupt neue Einträge da sind.

Da das „Gästebuch“ mehrmals im Einsatz ist und mehrere Tabellen hat, würde ich noch einbauen, in welchem genau (Tabellenname + Pfad dahin) und wann ein Eintrag hinterlassen wurde.

Ich brauche also: date, mail, eventuell mktime (?), eher unwahrscheinlich, damit wenn neue Einträge vorhanden sind, ich um Mitternacht benachrichtigt werde.

Ein entsprechendes Script könntest du über einen Cron-Job auslösen (Cron). Es gibt freie Services im Internet, die diese Funktionalität (das Aufrufen eines Scripts) übernehmen können, falls dir auf deinem Webspace kein cron-Zugriff erlaubt ist (Suche nach: „free cron job“).

Die nötigen Daten kannst du dir per SQL aus der Datenbank holen.

Vielleicht reicht es aber auch, ca. einmal am Tag eine Administrationsoberfläche aufzurufen?

Danke.
Beim Googlen bin ich auch zu Cron Job gestoßen.
Eine Adminoberfläche ist auch vorteilhaft, aber erfordert einige mehr Zeilen als eine zeitgesteuerte mail Funktion.

Ich wollte beides machen.

Warum schaust du nicht einfach alle 24h (um Mitternacht ;)) ins Gästebuch rein, anstatt in deinen Posteingang. Die Infos die du bekämst wären doch die selben oder?

Weil ich in 25 Gästebüchern schauen müsste, ob und was geschrieben wurde.
Eine Zusammenfassung per Mail wäre von Vorteil.
Sind also 25 Tabellen, aber der selbe Script.

Das geht nicht mit mail(). Dazu brauchst du imap_mail()…
mail() öffnet nur das Mailprogramm

Das ist aber eine Fehlinformation, es geht sehr wohl mit mail();

[PHP]

<?php $text = 'Am besten testest du das mal aus ;) '; mail("brebsaron@brebsaron.ch","Betreff",$text); ?>

[/PHP]

Also eine Idee wäre, dass jedes mal wenn ein User das Gästebuch aufruft eine Funktion aufgerufen wird, die nur dann eine E-Mail versendet wenn eine gewisse Bedingung erfüllt ist. Diese Bedingung musst du eben auf Deine Situation anpassen.

mail in HTML öffnet das Mailprogramm. Das mail(); in PhP versendet eine Mail vom Server.

Wie immer der Hinweis auf spezielle Mailerklassen: Standardantwort zu mail() - Forum: phpforum.de

Das sieht vielleicht auf den ersten Blick übertrieben aus, aber mit mail() gibt es definitiv öfter Probleme als nicht.