PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : E-Mail zu bestimmten Zeit versenden



saschaLin
15.03.06, 18:23
Hallo,

ich bin gerade dabei eine Anwendung in PHP zuschreiben.
Diese Anwendung soll, eine Mail zu einem bestimmten Zeitpunkt an einen E-Mail Adresse senden. Ich habe bereits sendmail (postfix) auf dem Linux Server installiert. Es funktioniert auch, dass der Server die E-Mail versendet.
Jetzt will ich aber dass die Mail erst später, zu einen bestimmten Zeitpunkt gesendet wird.

Gibt es dafür ne Möglichkeit, dieses zu implementieren. Es würde auch reichen, wenn jemand die Funktion für das sendmail Kommando in der Konsole kennt. Das in Php zu implementieren dürfte kein Problem sein.

Vielen Dank für Hilfe

Sascha

Tomek
15.03.06, 18:43
Wie wärs mit at?


man at

rkauskh
15.03.06, 21:38
Hi

Wenn das ein wiederkehrender Auftrag sein soll wäre cron vielleicht die bessere Variante. Einen at-Job müßte man ja dauernd neu anlegen. Kommt halt drauf an was du genau machen willst. Warum muß das aus PHP heraus erzeugt werden?

P.S.: E-Mails nachts versenden ist nicht billiger. :ugly:
(Sorry, ich konnts mir einfach nicht verkneifen.)

saschaLin
20.03.06, 20:50
Erstmal Danke für eure Antworten.

Also soll eine Erinnerung in meiner PHP Anwendung werden. D.h. der Benutzer gibt dann ein bestimmtes Enddatum ein und wenn dieses erreicht ist, wird die E-Mail versendet.

Werde mir erstmal die Beschreibungen von cron und at anschauen.

rkauskh
20.03.06, 21:09
Hi

Ich denke dann ist Cron der richtige Partner, Aber mit PHP hat das nur nebenbei zu tun. Man könnte hier PHP in eine Datei schreiben lassen und Cron wertet die aus.
Du kannst aber mal im Partnerforum www.mrunix.de nachfragen. Da sitzen die PHP-Spezis, die vielleicht eine bessere/einfachere Lösung kennen.

tschloss
20.03.06, 21:48
mail auf der Commandline: "mail" (man mail oder nail). Wenn der Mailaufbau komplexer wird, dann ist Perl ein guter Weg, oder eben CLI-PHP.

Greetz
Thomas

MiGo
20.03.06, 22:41
Also soll eine Erinnerung in meiner PHP Anwendung werden. D.h. der Benutzer gibt dann ein bestimmtes Enddatum ein und wenn dieses erreicht ist, wird die E-Mail versendet.
Geht's nur um ein Datum? Dann wäre eventuell ein Eintrag in eine Datenbank möglich; bei jedem Seitenaufruf wird abgecheckt, ob ein Eintrag überfällig ist, wenn ja, wird selbiger verschickt.
Dreckig, geht aber.

tschloss
20.03.06, 23:07
wieviele offene reminder werden das denn?
wie genau muss ein reminder kommen?

wenn es viele sein können: in einer datenbank ablegen.
wenn es z.B. +/- 5min genau passieren kann, so: per cron alle 5 min ein skript starten, welches in der datenbank (oder einem file oder was auch immer) nach "reifen" remindern sucht und diese auslöst. ich würde das in Perl machen, geht aber auch mit CLI-PHP, sofern vorhanden.
Ist keine große Sache!

Greetz
Thomas

saschaLin
21.03.06, 16:57
Also jeder Benutzer kann so einen Reminder anlegen. Das Datum wird dann jeweils in eine Datenbank geschrieben.

Das mit dem Seitenaufruf hatte ich auch schon überlegt, aber wenn dann keiner die Seite aufruft, wird die E-Mail vielleicht erst Tage danach versendet. Sollte schon öfters/regelmäßig überprüft werden.

Nach euren Vorschlägen werde ich jetzt ein PHP Skript schreiben, welches das Datum in der Datenbank überprüft und das Skript wird mit cron gestartet.

Mal schauen ob ich das hinbekomme wenn nicht werde ich mich nochmal melden ;-)

Danke erstmal!