Unter der Serienmail-Funktion kann man die Gültigkeit begrenzen - dies jedoch nur für einen bestimmten Zeitpunkt. Verstehen wir das falsch?
Das verstehen Sie richtig - eine relative zeitliche Begrenzung steht auf der Wunschliste, aber andere Funktionen werden aktuell deutlich dringlicher benötigt...
Wenn Sie die Datenschutz-Einstellungen in der Adresslsite nicht zu streng eingestellt haben, dann können Sie aber mit value('MAILSENT')
arbeiten. Damit sollten Sie den Zeitpunkt (als UNIX-Zeitstempel für PHP) bekommen, zu welchem die Mail verschickt wurde. Probieren Sie bitte einmal:
html('<p>Versand am: '.date('d.m.Y', value('MAILSENT')).'</p>');
Ausserdem soll jeder Teilnehmer auch wenn er eine Befragungswelle verpasst hat 30 Tage später dennoch eine Einladung zur nächsten Welle erhalten. Wie kann man das am besten einfügen?
30 Tage relativ wozu? Wenn es um einen fixen Zeitpunkt geht, ist das unproblematisch - dann schicken Sie einfach die Serienmail zu diesem Zeitpunkt an alle Teilnehmer. Wer sie schon bekommen hat, bekommt sie nicht nochmal.
Wenn es um einen relativen Zeitpunkt geht, dann verwenden Sie im ersten Fragebogen (der Startfragebogen, welchen der Teilnehmer sicher aufruft) maiSchedule()
, um die Serienmailmail(s) nach 30 Tagen zu verschicken. Also, das, was Sie in Ihrer Frage schon beschreiben. Und wer in einen Folgefragebogen kommt, der bekommt dann nochmal ein mailSchedule()
, damit sie schon früher zugestellt wird.
Vermutlich (das müssten Sie bitte testen) reicht das frühere mailSchedule()
schon aus. Wenn nicht, müssten Sie den ersten Versand noch gesondert mit mailRevoke()
canceln.