Geburtstagsscript (für Cronjob)
Hallo,
ich suche jetzt schon seit einiger Zeit nach einem fertigen GeburtstagsScript was ich mir mal ansehen kann um ein eigenes Script nach meinen Bedürfnissen zu erstellen. Leider habe ich bis jetzt nichts gefunden.
Deswegen habe ich mir gedacht, ich versuche es mal selber.
Ich hoffe auf diesem Wege, einige Gedankenansätze (Wie fängt man an, welche Datenbank-Tabellen sollte man erstellen, etc.) oder auch CodeSnipsel zu erhalten die mir bei meinem Projekt helfen und dir mir auch helfen das alles ein bisschen besser zu verstehen. Da ich bei diesem Script fremde eMail-Daten verwende, möchte ich schon, dass es sicher ist.
Ich bin eigentlich blutiger Anfänger, bin aber gewillt, mich durch die Materie durch zu lesen. Das Script, da ich es ja auch mit Eure Hilfe erstelle, möchte ich dann auch hier zum download rein stellen.
Es handelt sich, wie im Titel leicht zu erkennen um ein Geburtstagsscript welches mittels Cronjob oder auch manuell ausgeführt werden kann. Welches aber 3 Besonderheiten haben soll. Einmal soll er zum Geburtstag und zum Jahrestag gratulieren, dann soll er aber auch noch allen in der Liste stehenden eine eMail schicken wenn eine besondere Person Geburtstag hat.
Alle eMails sollten, wenn möglich als html-Mail versendet werden, wobei a) die html-Email (Ausehen, Vorlage) in einer separaten Datei stehen soll, b) die Personen persönlich angeschrieben werden sollen (Glückwunsch Name) und c) für alle 3 Besonderheiten eine andere html-Email Vorlage verwendet werden soll. (Ich hoffe, dass ich mich richtig ausgedrückt habe.)
Ich hoffe also, dass nun einige Interesse haben weiter zu lesen.
Ich fange mal an zu schreiben, was das Script können muss:
Features (Gedankenansätze)
- Das Script soll in php geschrieben sein und wenn es geht über eine Datenbank (mysql) laufen, da ich gehört habe das eine Datenbank die sicherste Möglichkeit ist. Ich hatte erst überlegt eine CSV-Datei zu wählen.
- Das Script soll einmal am Tag per Cronjob oder auch manuell ausgeführt werden können.
- Es sollte am besten durch ein Passwort (was über GET versendet wird) geschützt sein, so dass es nicht jeder ausführen kann.
- Das Script prüft nun einmal am Tag wer an diesem Tag Geburtstag hat und wer an diesem Tag Jahrestag hat und sendet der/den Person(en) die betreffenden eMails der Personen.
Ich habe mir hier überlegt, dass er das auch so anzeigt, wenn er man das Script manuell aufruft:
- Zusätzlich wird geprüft ob die Person eine besondere Person ist (in meinem Fall hätte ich jetzt gedacht, ich erstelle eine Datenbank-Tabelle "vorstand" und wenn dort etwas eingetragen ist, dann ist es eine besondere Person.) Wenn es eine besondere Person ist bekommen alle, die in der Liste stehen, eine eMail mit der Info das eine besondere Person Geburtstag hat.
- Alle Ergebnisse werden nun auch nochmal an eine Adresse versendet (Admin). Er bekommt eine eMail mit einer Gesamt-Auflistung,
Beispiel:
Betreff: xx.xx.xxxx - Geburts-, Jahres- & besondere Tage
- Es sollte auch möglich sein, Personen ohne eMail einzutragen. Die Info bekommt aber dann nur die Person mit der Gesamtauflistung. So kann er Admin, dann evtl. anrufen bzw. sich anders melden.
Anfang
Mache ich mal den Anfang.
Ich habe mir überlegt eine Datenbank-Tabelle zu erstellen, die wie folgt aussieht:
id - wird automatisch erstellt.
position - Wenn hier was drin steht, ist es eine besondere Person, steht nix drin (weiß nicht ob man das Feld leer lassen sollte oder einen Wert (z.B. 0) zuweisen sollte).
vorname bis email - sind klar.
geburtstag, jahrestag - weiß ich nicht welches Format ich nehmen soll, da ich ja auch wissen möchte wie alt die Person wird.
versandt - hier habe ich mir überlegt, dass man eine kontrolle einbaut, ob die eMail versandt wurde. Hier soll das letzte Datum der Versendung rein.
Meine Überlegung ist nun:
- Reicht eine Datenbank-Tabelle?
- Welches Datumformat soll ich für alle Felder verwenden?
- Wie sieht der INSERT-Befehl für die Erstellung der Datenbank-Tabelle aus. (Ich würde es gerne so machen, dass wenn man die Datenbank-Variablen in der config ausgefühlt hat, prüft das Script ob die Tabelle existiert und wenn nicht soll er die benötigte Tabelle installieren. Also von wegen. Konnte Tabelle nicht finden. Datenbank ist erreichbar und aktiv. Tabelle wurde erfolgreich erstellt.)
- Sind weitere Spalten notwendig?
- Darf bzw. sollte man eine externe config.inc erstellen um da weitere Einstellungsmöglichkeiten eingeben zu können?
- Wie versende ich eine Mail wo ich die eigentliche eMail (Content) in einer externen Datei habe?
- Muss ich etwas beachten, wenn ich eine eMail an alle in der Liste befindlichen Personen schicke?
- Wie sollte ich nun am besten Anfangen?
Ich denke, ich warte erst einmal auf antworten bis es hier weiter geht.
Ich bedanke mich schon bei allen die sich hier den Text nun durchgelesen haben und ggf. auch antworten.
Gruss Dj_PD
Hallo,
ich suche jetzt schon seit einiger Zeit nach einem fertigen GeburtstagsScript was ich mir mal ansehen kann um ein eigenes Script nach meinen Bedürfnissen zu erstellen. Leider habe ich bis jetzt nichts gefunden.
Deswegen habe ich mir gedacht, ich versuche es mal selber.
Ich hoffe auf diesem Wege, einige Gedankenansätze (Wie fängt man an, welche Datenbank-Tabellen sollte man erstellen, etc.) oder auch CodeSnipsel zu erhalten die mir bei meinem Projekt helfen und dir mir auch helfen das alles ein bisschen besser zu verstehen. Da ich bei diesem Script fremde eMail-Daten verwende, möchte ich schon, dass es sicher ist.
Ich bin eigentlich blutiger Anfänger, bin aber gewillt, mich durch die Materie durch zu lesen. Das Script, da ich es ja auch mit Eure Hilfe erstelle, möchte ich dann auch hier zum download rein stellen.
Es handelt sich, wie im Titel leicht zu erkennen um ein Geburtstagsscript welches mittels Cronjob oder auch manuell ausgeführt werden kann. Welches aber 3 Besonderheiten haben soll. Einmal soll er zum Geburtstag und zum Jahrestag gratulieren, dann soll er aber auch noch allen in der Liste stehenden eine eMail schicken wenn eine besondere Person Geburtstag hat.
Alle eMails sollten, wenn möglich als html-Mail versendet werden, wobei a) die html-Email (Ausehen, Vorlage) in einer separaten Datei stehen soll, b) die Personen persönlich angeschrieben werden sollen (Glückwunsch Name) und c) für alle 3 Besonderheiten eine andere html-Email Vorlage verwendet werden soll. (Ich hoffe, dass ich mich richtig ausgedrückt habe.)
Ich hoffe also, dass nun einige Interesse haben weiter zu lesen.
Ich fange mal an zu schreiben, was das Script können muss:
Features (Gedankenansätze)
- Das Script soll in php geschrieben sein und wenn es geht über eine Datenbank (mysql) laufen, da ich gehört habe das eine Datenbank die sicherste Möglichkeit ist. Ich hatte erst überlegt eine CSV-Datei zu wählen.
- Das Script soll einmal am Tag per Cronjob oder auch manuell ausgeführt werden können.
- Es sollte am besten durch ein Passwort (was über GET versendet wird) geschützt sein, so dass es nicht jeder ausführen kann.
- Das Script prüft nun einmal am Tag wer an diesem Tag Geburtstag hat und wer an diesem Tag Jahrestag hat und sendet der/den Person(en) die betreffenden eMails der Personen.
Ich habe mir hier überlegt, dass er das auch so anzeigt, wenn er man das Script manuell aufruft:
Code:
heutige Geburtstage: <Tabelle> <eMail an Person senden> Vorname, Nachname wird X Jahre - Bild mit Hacken oder Kreuz anzeigen <update Zeile mit aktuellem Versanddatum> <eMail an Person senden> Vorname, Nachname wird X Jahre - Bild mit Hacken oder Kreuz anzeigen <update Zeile mit aktuellem Versanddatum> </Tabelle> heutige Jahrestage: <Tabelle> <eMail an Person senden> Vorname, Nachname wird X Jahre - Bild mit Hacken oder Kreuz anzeigen <update Zeile mit aktuellem Versanddatum> <eMail an Person senden> Vorname, Nachname wird X Jahre - Bild mit Hacken oder Kreuz anzeigen <update Zeile mit aktuellem Versanddatum> </Tabelle> besondere Geburtstage: <Tabelle> <eMail an Person senden> Der Position Vorname, Nachname wird heute X Jahre - Bild mit Hacken oder Kreuz anzeigen <update Zeile mit aktuellem Versanddatum> <eMail an Person senden> Der Position Vorname, Nachname wird heute X Jahre - Bild mit Hacken oder Kreuz anzeigen <update Zeile mit aktuellem Versanddatum> </Tabelle> <Gesamtauflistung versenden>
- Alle Ergebnisse werden nun auch nochmal an eine Adresse versendet (Admin). Er bekommt eine eMail mit einer Gesamt-Auflistung,
Beispiel:
Betreff: xx.xx.xxxx - Geburts-, Jahres- & besondere Tage
Code:
Heute ist der xx.xx.xxxx x Personen haben Geburtstag: Vorname Nachname (Alter) - eMail (anklickbar), Vorname Nachname (Alter) - eMail (anklickbar), etc. x Personen haben Jahrestag: Vorname Nachname (Alter) - eMail (anklickbar), Vorname Nachname (Alter) - eMail (anklickbar), etc. Besondere Personen: Position - Vorname Nachname (Alter) - eMail (anklickbar), Position - Vorname Nachname (Alter) - eMail (anklickbar), etc.
Anfang
Mache ich mal den Anfang.
Ich habe mir überlegt eine Datenbank-Tabelle zu erstellen, die wie folgt aussieht:
Code:
id|position|vorname|nachname|email|geburtstag|jahrestag|versandt
position - Wenn hier was drin steht, ist es eine besondere Person, steht nix drin (weiß nicht ob man das Feld leer lassen sollte oder einen Wert (z.B. 0) zuweisen sollte).
vorname bis email - sind klar.
geburtstag, jahrestag - weiß ich nicht welches Format ich nehmen soll, da ich ja auch wissen möchte wie alt die Person wird.
versandt - hier habe ich mir überlegt, dass man eine kontrolle einbaut, ob die eMail versandt wurde. Hier soll das letzte Datum der Versendung rein.
Meine Überlegung ist nun:
- Reicht eine Datenbank-Tabelle?
- Welches Datumformat soll ich für alle Felder verwenden?
- Wie sieht der INSERT-Befehl für die Erstellung der Datenbank-Tabelle aus. (Ich würde es gerne so machen, dass wenn man die Datenbank-Variablen in der config ausgefühlt hat, prüft das Script ob die Tabelle existiert und wenn nicht soll er die benötigte Tabelle installieren. Also von wegen. Konnte Tabelle nicht finden. Datenbank ist erreichbar und aktiv. Tabelle wurde erfolgreich erstellt.)
- Sind weitere Spalten notwendig?
- Darf bzw. sollte man eine externe config.inc erstellen um da weitere Einstellungsmöglichkeiten eingeben zu können?
- Wie versende ich eine Mail wo ich die eigentliche eMail (Content) in einer externen Datei habe?
- Muss ich etwas beachten, wenn ich eine eMail an alle in der Liste befindlichen Personen schicke?
- Wie sollte ich nun am besten Anfangen?
Ich denke, ich warte erst einmal auf antworten bis es hier weiter geht.
Ich bedanke mich schon bei allen die sich hier den Text nun durchgelesen haben und ggf. auch antworten.
Gruss Dj_PD
Kommentar