Dies ist eine alte Version des Dokuments!
void mailSchedule(string PersonID, int Serienmail, int Zeitpunkt, [array Einstellungen])
Diese Funktion bereitet direkt im Fragebogen den Versand einer Serienmail vor – etwa die Einladung zum zweiten Fragebogen. Im Gegensatz zu mailResume()
wird nicht das laufende Interview fortgesetzt, sondern die Serienmail wird genauso verschickt, als hätte man den Versand manuell vorbereitet.
Wichtig: Der Versand funktioniert nur dann, wenn der Teilnehmer bereits in der Serienmail-Adressliste registriert ist.
false
eintragen, die passende Kennung wird dann automatisch ermittelt.'status
''finished
' – …geöffnet und der Fragebogen bis zum Ende ausgefüllt wurde'incomplete
' – …nicht geöffnet oder nicht bis zum Ende ausgefüllt wurde'no-response
' – …nicht geöffnet wurde'expire
''to.email
''to.mobile
''%custom1%
' bis '%custom5%
'mailSchedule()
-Befehl angegeben werden, dann werden in der Serienmail diese Inhalte anstatt der Angaben im Adresseintrag verwendet.
Hinweis: Eine Serienmail wird (im Gegensatz zu mailResume()
) nur einmal pro Empfänger zugestellt, auch wenn die Funktion mit derselben Serienmail mehrfach aufgerufen wird. Der Versand unterschiedlicher Serienmails ist möglich – z.B. eine Einladung zur zweiten Befragungswelle in 14 Tagen und eine weitere Einladung zur dritten Welle in 1 Monat.
Tipp: Im Internet gibt es zahlreiche Websites, die ein Datum in einen Unix-Zeitstempel umrechnen können, z.B. unixtime.de. Auch die Datums- und Zeit-Funktionen von PHP (insbesondere mktime()
und strtotime()
) sind dafür hervorragend geeignet.
Der folgende Befehl versendet die Serienmail mit der ID 2 am nächsten Montag um 8 Uhr an die Person, die den Fragebogen gerade ausfüllt. Anstelle des Platzhalters %custom1%
wird in der Serienmail das Datum angezeigt, wann mailSchedule()
aufgerufen wurde.
mailSchedule(false, 2, strtotime('next Monday 08:00:00'), [ '%custom1%' => date('d.m.Y') ])
Serienmail 3 ist eine Erinnerungsmail für Serienmail 2 (s. oben) und soll um 16 Uhr verschickt werden, wenn der Link in Serienmail 2 bis dahin noch nicht aufgerufen wurde.
mailSchedule(false, 3, strtotime('next Monday 16:00:00'), [ 'status' => 'no-response', '%custom1%' => date('d.m.Y') ])
Ein Teilnehmer wurde per Serienmail zum Fragebogen eingeladen. 14 Tage, nachdem er auf den Link geklickt und damit den Fragebogen aufgerufen hat, soll er eine Einladung zum zweiten Fragebogen erhalten (Serienmail Nr. 2).
mailSchedule(false, 2, strtotime('+14 days'));
Anstatt die Funktion strtotime()
zu bemühen, kann das Zeitinterval auch in Sekunden spezifiziert werden: 14 Tage = 336 Stunden = 1209600 Sekunden.
mailSchedule(false, 2, 1209600);
Der Teilnehmer wird mit Serienmail 1 zum ersten Fragebogen (Welle 1) eingeladen – die Einladungen erfolgen gestaffelt, sodass a-priori nicht bekannt ist, wann der Teilnehmer den Fragebogen ausfüllt. Einen Monat nach dem Ausfüllen des ersten Fragebogen soll der Teilnehmer eine Einladung zur zweiten Erhebungswelle bekommen (Serienmail 2). Falls er nicht teilnimmt, soll nach einer Woche noch ein Reminder (Serienmail 3) verschickt werden.
In Serienmail 3 ist eingestellt, dass es sich um eine Erinnerungs-/Folgemail für Serienmail 2 handelt.
Im Fragebogen zur ersten Erhebungswelle wir folgender PHP-Code verwendet:
mailSchedule(false, 2, strtotime('+1 month')); mailSchedule(false, 3, strtotime('+1 month +1 week'), array( 'status' => 'no-response' ));