Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:functions:mailresume [11.04.2018 09:04]
admin [Unterbrechung eines Interviews]
de:create:functions:mailresume [27.02.2020 17:32] (aktuell)
admin [Serienmail nach Opt-In-Frage]
Zeile 89: Zeile 89:
 mailResume('​ABCDE123',​ 3, 0); mailResume('​ABCDE123',​ 3, 0);
 </​code>​ </​code>​
 +
 +
 +===== Serienmail nach Opt-In-Frage =====
 +
 +Mit einer Frage vom Typ [[:​de:​create:​questions:​opt-in]] kann man im Fragebogen E-Mail-Adressen abfragen und direkt in die Adressliste (**Einladungen verschicken** -> **Adressliste**) eintragen, sodass man später Serienmails an die E-Mail-Adressen versenden kann.
 +
 +Dieser Abschnitt erklärt, wie man mittels ''​[[:​de:​create:​functions:​mailschedule]]''​ automatisch den zeitgesteuerten oder unmittelbaren Versand einer Serienmail an die eingetragene E-Mail-Adresse auslöst.
 +
 +Bei der Opt-In-Frage gibt es zwei Mechanismen:​ Das Double-Opt-In (der Teilnehmer muss den Adresseintrag erst via Bestätigungsmail bestätigen,​ empfohlen) und das Single-Opt-In,​ bei welchem die (möglicherweise falsche) E-Mail-Adresse direkt gespeichert wird.
 +
 +  - Beim Double-Opt-In ist es sinnvoll, den Versand erst nach Bestätigung der Mailadresse auszulösen. Wie das funktioniert wird in folgendem Kapitel erläutert: [[:/​de:​survey:​opt-in-live]]
 +  - Wenn die Serienmail direkt verschickt werden soll, kann man die Bestätigungsmail der (Double-)Opt-In-Frage zugleich als Einladungsmail zu einem Fragebogen genutzt werden (//Weitere Einstellungen//​ -> //​Weiterleitung nach Bestätigung//​ -> //​Fragebogen-Link aus//). Allerdings ist der Link in der Bestätigungsmail nur 24 Stunden gültig. Eine "​richtige"​ Serienmail-Einladung ist i.d.R. für den gesamten Erhebungszeitraum gültig, sofern die Gültigkeit in den Serienmail-Einstellungen nicht begrenzt wird.
 +  - Wenn eine "​richtige"​ Serienmail im Anschluss an ein Single-Opt-In verschickt werden soll, kommt der Befehl ''​mailSchedule()''​ zum Einsatz. Dies wird nachfolgend genauer erläutert.
 +
 +Der PHP-Code mit dem ''​mailSchedule()''​ wird (frühestens) auf der Seite platziert, welche auf die Opt-In-Frage folgt. Denn erst dort kennt der Befragungsserver die neue E-Mail-Adresse und hat ihr eine Personekennung (SERIAL) zugewiesen. Diese Personenkennung ist als erster Parameter für die Funktion ''​mailSchedule()''​ erforderlich (so sonst häufig ''​false''​) verwendet wird. Woher bekommt man die Kennung? Wenn der Teilnehmer in der Opt-In-Frage eine E-Mail-Adresse eingetragen hat, dann ist sie im Datensatz in einer Variable vermerkt, welche dieselbe Kennung wie die Opt-In-Frage hat.
 +
 +Im folgenden Beispiel hätte die Opt-In-Frage auf Seite 9 die Kennung "​OI01"​. Auf Seite 10 (oder später) würde der folgende PHP-Code dann sofort die Serienmail mit der ID 2 versenden. Das ''​value('​OI01'​)''​ liefert die Teilnehmerkennung (SERIAL) des neuen Adresseintrags.
 +
 +<code php>
 +mailSchedule(value('​OI01'​),​ 2, 0);
 +</​code>​
 +
 +Der folgende PHP-Code würde die Serienmail mit der ID 3 nach 14 Tagen versenden:
 +
 +<code php>
 +mailSchedule(value('​OI01'​),​ 3, strtotime('​+7 days'​));​
 +</​code>​
 +
 +Es können natürlich auch mehrere Serienmails vorbereitet werden:
 +
 +<code php>
 +mailSchedule(value('​OI01'​),​ 2, 0);
 +mailSchedule(value('​OI01'​),​ 3, strtotime('​+7 days'​));​
 +mailSchedule(value('​OI01'​),​ 4, strtotime('​+14 days'​));​
 +</​code>​
 +
 +Wenn die Möglichkeit besteht, dass der Teilnehmer keine E-Mail-Adresse einträgt, sollte noch ein ''​if''​ ergänzt werden, um Fehlermeldungen zu vermeiden:
 +
 +<code php>
 +$serial = value('​OI01'​);​
 +if ($serial) {
 +  mailSchedule($serial,​ 2, 0);
 +  mailSchedule($serial,​ 3, strtotime('​+7 days'​));​
 +  mailSchedule($serial,​ 4, strtotime('​+14 days'​));​
 +}
 +</​code>​
 +
 +Beachten Sie, dass die Personenkennung (SERIAL) hier in einer PHP-Variable (''​$serial''​) zwischengespeichert wird, um sie direkt in den ''​mailSchedule()''​-Aufrufen zu verwenden. Selbstverständlich könnte hier ebenso ''​value('​OI01'​)''​ stehen.
de/create/functions/mailresume.1523430277.txt.gz · Zuletzt geändert: 11.04.2018 09:04 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki