E-Mail send verzögern

rsierra

Grünschnabel
Hallo Allerseits!

Möchte mich erkundigen wie ich folgendes realisieren könnte:

Habe ein normales Html Formular auf einer Website, die Daten welcher der User ausfüllt werden mit einem gewöhnlichen insert ASP script in eine Access 2000 Datenbank eingefügt.

Nun muss ich eine Funktion hinzufügen, die zustäzlich dem User eine Bestätigungs-EMail sendet (Entweder mit CDONTS oder ASPEMAIL). Das ist kein Problem und einfach, aber die Herausforderung ist, dass die E-mail 30 TAGE nach dem Eintrag in die Datenbank an den entsprechen User gesendet werden muss. Hat jemand eine Idee wie dies lösbar wäre? Bin für jegliche Tips/Hilfe sehr dankbar.

Greetings,
RSierra
 
Hallo.

In der DB erstellst du eine Tabelle mit z.B.: ID des Users, und dem Datum an dem die E-Mail versendet wird.
Du schreibst ein Script, welches diese Tabelle Reihe für Rehe durchgeht, und die E-Mails versendet.

Das einzige Problem ist, dass dieses Script täglich aufgerufen werden muss.

Wenn deine Seite aber täglich besucht wird, könntest du dies mithilfe eines Includes, und dem oben erwähnten Script, das keine Ausgabe beim User erzeugt, lösen.

Mfg,
Alex
 
Hallo Alex!

Vielen Dank für deine Antwort!

Das tägliche Ausführen des Scriptes wäre kein Problem.

Nur leider sind meine ASP Kentnisse noch nicht sehr fortgeschritten. Wie würde das funktionieren, dass z.B beim Sendedatum-Feld, automatisch das Datum 30 Tage nach dem Eintragsdatum eingefügt wird? Und wie würde der Script aussehen, der die Sendedaten-Felder checkt, und dann alle ausgewählten Einträge an CDONTS or ASPEMAIL weiterleitet? Gibt es irgendwo Scriptbeispiele? Oder hättest du die Geduld und Zeit mir so ein Beisipiel zu machen?

Nochmals vielen Dank! Gruss,

RSierra
 
Bitte gerne.

Mal wegen dem Datum. Bei ASP/VBScript gibt es eine Methode Names "dateadd".
Diese erfordert 3 Parameter.

Code:
dateadd(string, int, datum/uhrzeit)

Das erste Argument ist ein String der angibt, was verändert werden soll (Minuten, Stunden, Jahre,..), der zweite gibt den Wert an um wieviel verändert werden soll, und der letzte ist die Ausgangszeit/das Ausgangsdatum.

Code:
yyyy	»	Jahr
q	»	Quartal
m	»	Monat
y	»	Tag im Jahr
d	»	Tag
w	»	Wochentag
ww	»	Kalenderwoche
h	»	Stunde
n	»	Minute
s	»	Sekunde

Damit kannst du schonmal das Datum manipulieren.

Wenn du schon einmal eine E-Mail mit CDONTS oder ASPEMAIL verschickt hast, und auch schon mal durch Datensätze navigiert hast, geht das nächste 'Problem' auch ganz einfach zu lösen.

Du holst dir aus der Tabelle alle Datensätze in ein Recordset, in einer Schleife gehst du dann alle durch.
In dieser Schleife erstellst du eine E-Mail mit der von dir gewünschten Componente, verschickst die E-Mail und zerstörst das E-Mail Objekt.
Beim nächsten Durchlauf wird dieses dann wieder erstellt, und so weiter und so fort. Bis alle Datensätze durch sind.

Denkst du schaffst du das, oder hast irgendwo noch Fragen.

Würde dir vorschlagen, dass du es einmal probierst, und bei Problemen kannst hier ja das Problem posten.


Mfg,
Alex
 
Vielen Dank Alex!

Werde das ganze mal ausprobieren und eventuelle Probleme die sich ergeben posten.

Viele Grüsse,

RSierra
 
Hallo nochmals!

Die Dateadd Funktion habe ich nun erfolgreich in die DB eingefügt. Jetzt habe ich ein Feld namens "SendDate" in welchem dank der Dateadd Funktion automatisch das Datum in 30 Tagen nach dem Eintragsdatum eingefügt wird.

Bereits bin ich aber überfordert. Mein plan ist, dass ich mit einem SELECT alle Einträge die beim "SendDate" Feld ein Datum haben welches mit dem heutigem übereinstimmt sammelt, und diese an CDONTS für den Versand weiterleitet. Um sicher zu gehen, dass keine Duplikate gesendet werden, dachte ich ein zusätzliches Feld "Sent" welches nach dem senden gecheckt wird, und somit wird der gecheckte Eintrag für zukünftige Sendungen nicht mehr berücksichtigt.

Da ich ja aber Einträge aus der ganzen Welt erhalte, und dadurch auch eine Zeitverschiebung vorhanden ist, habe ich Bedenken das einige Einträge gar nicht an den Versand weitergeleitet werden. Ist es möglich einen SELECT zu machen, der nur Einträge berücksichtigt, bei welchen das "SendDate" Datum älter als 30 Tage vom heutigen Datum entfernt ist, jedoch kein check beim "Sent" Feld haben?

Ich hoffe die ganze Sache klingt jetzt nicht zu verwirrend oder kompliziert. Wäre es zu umständlich mir einige Beispiele zu geben? Vielen Dank im voraus für jegliche Hilfe!

Grüsse aus CH,

RSierra
 

Neue Beiträge

Zurück