0 votes
in SoSci Survey (dt.) by s252607 (155 points)

Hallo zusammen,

ich habe eine dringende Frage, da heute eigentlich der letzte Tag zum Testen sein sollte.

Ich führe eine Tagebuchstudie durch. Die E-Mail ist zur passenden Uhrzeit rausgegangen, allerdings ist seit heute plötzlich beim Klicken auf dem Link der Zugriff nicht mehr gültig: "Zugriff verweigert: der übermittelte Zugangsschlüssel ist nicht oder nicht mehr gültig".
Fragebogen A1 dient zur E-Mail-Erfassung (öffentlich), Bestätigung der E-Mail erfolgt mit Link zu Fragebogen A2 (Serienmail). Alle anderen Fragebögen erfolgen auch über Serienmail. Die Serienmail wird auch versandt.

Woher kommt das Problem?

Meine Überlegungen:

Ist der Fragebogen abgelaufen? Bezieht sich die Expire-Funktion auf die jeweilige Mail oder auf den Referenzpunkt (candidate 0)? Das ist mein Code:
$candidates = [ strtotime('next Monday 00:00:00'), strtotime('next Tuesday 00:00:00'), strtotime('next Wednesday 00:00:00'), strtotime('next Thursday 00:00:00'), strtotime('next Friday 00:00:00'), ];

$nextDay = min($candidates);

$reference = strtotime('-14 hours');
$candidates = [ strtotime('next Monday 17:00:00', $reference), strtotime('next Tuesday 17:00:00', $reference), strtotime('next Wednesday 17:00:00', $reference), strtotime('next Thursday 17:00:00', $reference), strtotime('next Friday 17:00:00', $reference), ];

sort($candidates);

mailSchedule(false, 2, $candidates[0], ['expire' => 43200,'status' => 'incomplete']);
mailSchedule(false, 3, $candidates[1], ['expire' => 43200,'status' => 'incomplete']);
mailSchedule(false, 4, $candidates[2], ['expire' => 43200,'status' => 'incomplete']);
mailSchedule(false, 5, $candidates[3], ['expire' => 43200,'status' => 'incomplete']);
mailSchedule(false, 6, $candidates[4], ['expire' => 43200,'status' => 'incomplete']);

by s252607 (155 points)
Oder kann es sein, dass das Ganze bei allen nciht mehr funktioniert, weil Änderungen vorgenommen worden sind?

1 Answer

0 votes
by SoSci Survey (327k points)

Die Fehlermeldung bezieht sich auf den Teilnahmelink und damit auf die Serienmail.

Meine Vermutung wäre, dass Sie in der Serienmail unter "Erinnerung/Folgemail" bei "Art der Folgemail" die Option "Erinnerung oder Fortsetzung" ausgewählt haben.

In dem Fall versendet SoSci Survey denselben Link wie bei der vorigen E-Mail (auf welche sich die Erinnerungsmail bezieht). Und dieser ist aufgrund der expire Einstellung vermutlich schon abgelaufen (was er ja auch sein soll).

Was tun? Stellen Sie erstmal die Option um. Bei Personen, die bisher noch keine Mail bekommen haben sollte das Problem dann nicht mehr auftreten. Und für die, die bereits eine E-Mail bekommen haben ... legen Sie für diese bitte eine Kopie der Serienmail an, und senden Sie diese manuell über den jeweiligen Adresseintrag an die betroffenen Personen.

by s252607 (155 points)
edited by s252607
Achso, verstehe! Also muss expire NICHT in Verbindung mit status incomplete stehen, damit der Tagesfragebogen nach 12 Stunden nicht mehr verfügbar ist? Wenn man einen Tag überspringt, soll es trotzdem möglich sein, am nächsten Tag wieder teilzunehmen. Dann würde ich status incomplete auf jeden Fall schon mal rauslöschen!

Sehr gerne, vielen Dank! Der Link zum veröffentlichten Fragebogen ist wie folgt:
https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/

Der zu einem Tagesfragebogen ist wie folgt: https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/?q=B1
bzw. mit Endung B2 usw.
by s252607 (155 points)
Übrigens: Einladung zu Tag 1 ist auch passend mit dem Fragebogen B1, Einladung zu Tag mit B2 usw. verlinkt ... Daran sollte es also auch nicht liegen...
by SoSci Survey (327k points)
> Dies ist keine Erinnerung/Folgemail

Dann kann das 'status' => 'incomplete' aber keine Wirkung haben. Das bezieht sich ja auf den vorigen Teilnahmestatus.

> Danach habe ich nochmal einzelne Fragen bearbeitet - kann es daran liegen?

Nein, wie gesagt: Die Meldung kommt von der Serienmail.

> Oder könnte es noch andere Fehler geben?

Wenn Sie möchten, posten Sie den "defekten" Link, dann kann ich in der Datenbank nachsehen, was dazu an Details gespeichert ist und warum er nicht funktioniert.
by s252607 (155 points)
edited by s252607
Das wäre einer der Links - der Zugriff hat aber bei allen nicht funktioniert ...
https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/?l=ger&d=RHHT9CYHPBASTQSS

Dieser Link (andere Mailadresse) auch: https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/?l=ger&d=874QD88VNFYBCG5P

Da war ich wohl etwas voreilig, denn soeben habe ich alle Adressen gelöscht, um "alles nochmal auf "reset" zu stellen.
by SoSci Survey (327k points)
Ich bräuchte bitte den spezifischen, personalisierten Link, mit dem Sie das "Zugriff verweigert: der übermittelte Zugangsschlüssel ist nicht oder nicht mehr gültig" bekommen haben.

Es ist auch wichtig, dass die Adresse nicht zwischenzeitlich aus dem Adressverteiler gelöscht wurde - sonst kann es ja nicht mehr funktionieren. Für die Fehlersuche ist es generell keine gute Idee, etwas zu löschen.
by SoSci Survey (327k points)
Ich finde für das genannte Projekt in der Datenbank insgesamt nur noch 3 Zugangsschlüssel. Meine Vermutung wärem, dass Sie die Mailadressen zu den o.g. Links bereits aus der Adressliste gelöscht haben? In diese Fall kann ich leider kleine Informationen mehr recherchieren - mit der Löschung der Mailadressen (oder der Serienmails) werden auch die Zugangsschlüssel gelöscht. Womöglich was auch das die Ursache für das beobachtete Problem?
by s252607 (155 points)
edited by s252607
Vielen lieben Dank fürs Nachschauen. Ja, vorhin hatte ich vor Ihrer Nachricht leider Adressen gelöscht. Ich teste, ob morgen der Fragebogen durchgeht und gehe dann ins Feld.



Ich habe
mailSchedule(false, 2, $candidates[0], ['expire' => 43200,**'status' => 'incomplete'**]);
in
mailSchedule(false, 2, $candidates[0], ['expire' => 43200]);

umgeändert. **Damit sollte jeder Fragebogen ja nach 12 Stunden nicht mehr zugreifbar sein, aber die Daten, die angegeben worden sind, gespeichert werden, oder?**
by s252607 (155 points)
Update zum Test:
Folgender Link hat funktioniert:
https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/?l=ger&d=Z45US2MPN7QRP5G6

Folgende Links haben aber nicht funktioniert:
https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/?l=ger&d=VNKHH9X47D4KHUTQ
https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/?l=ger&d=P27TRPMCAH2RHLQN

Gibt es dafür einen Grund? Adressen habe ich dieses Mal nicht gelöscht.
by SoSci Survey (327k points)
Laut Datenbank wurde der erste Link für das Interview CASE 716 verwendet.

Der zweite Link wurde zweimal (!) verschickt, einmal um 22:04 Uhr und einmal um 00:34 Uhr. Das erste mal über die Serienmail 2, das zweite mal über die Serienmail 8.

Bei der Serienmail 8 ist - soweit ich in der Datenbank sehe - eingetragen, dass es sich um eine Erinnerungsmail handelt.
by s252607 (155 points)
Ich kann derweil auf gar keinen Link mehr zugreifen, auch nicht auf den ersten, der ja ausgefüllt sein müsste.

Zu Link 1: Also hat Link 1 https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/?l=ger&d=VNKHH9X47D4KHUTQ doch funktioniert.

Zu Link 2: 22:04 Uhr kommt mir komisch vor.

Aber wo liegt jetzt der Fehler, dass die Fragebögen nicht zugreifbar sind? Folgenden Code hatte ich zum Testen genutzt:

$candidates = [
   strtotime('next Monday 00:00:00'),
   strtotime('next Tuesday 00:00:00'),
   strtotime('next Wednesday 00:00:00'),
   strtotime('next Thursday 00:00:00'),
   strtotime('next Friday 00:00:00'),
];

$nextDay = min($candidates);

$reference = strtotime('-14 hours');
$candidates = [
   strtotime('next Monday 00:04:00', $reference),
   strtotime('next Tuesday 00:04:00', $reference),
   strtotime('next Wednesday 00:04:00', $reference),
   strtotime('next Thursday 00:04:00', $reference),
   strtotime('next Friday 00:04:00', $reference),
];

sort($candidates);

mailSchedule(false, 2, $candidates[0], ['expire' => 43200]);
mailSchedule(false, 3, $candidates[1], ['expire' => 43200]);
mailSchedule(false, 4, $candidates[2], ['expire' => 43200]);
mailSchedule(false, 5, $candidates[3], ['expire' => 43200]);
mailSchedule(false, 6, $candidates[4], ['expire' => 43200]);

debug(date('d.m.Y H:i', $candidates[0]));
debug(date('d.m.Y H:i', $candidates[1]));
debug(date('d.m.Y H:i', $candidates[2]));
debug(date('d.m.Y H:i', $candidates[3]));
debug(date('d.m.Y H:i', $candidates[4]));


// Erinnerungen
mailSchedule(false, 8, $candidates[0] + 150 * 60, ['status' => 'no-response']);
mailSchedule(false, 9, $candidates[1] + 150 * 60, ['status' => 'no-response']);
mailSchedule(false, 10, $candidates[2] + 150 * 60, ['status' => 'no-response']);
mailSchedule(false, 11, $candidates[3] + 150 * 60, ['status' => 'no-response']);
mailSchedule(false, 12, $candidates[4] + 150 * 60, ['status' => 'no-response']);



debug(date('d.m.Y H:i', $candidates[0] + 150 * 60,));
debug(date('d.m.Y H:i', $candidates[1] + 150 * 60,));
debug(date('d.m.Y H:i', $candidates[2] + 150 * 60,));
debug(date('d.m.Y H:i', $candidates[3] + 150 * 60,));
debug(date('d.m.Y H:i', $candidates[4] + 150 * 60,));
by SoSci Survey (327k points)
> Ich kann derweil auf gar keinen Link mehr zugreifen, auch nicht auf den ersten, der ja ausgefüllt sein müsste.

Ja, das war ja mit dem "expire" auch so gedacht, oder? Nach dem Versand ist er 43200 Sek. = 12 Stunden gültig.

> Aber wo liegt jetzt der Fehler, dass die Fragebögen nicht zugreifbar sind?

In der Einstellung im Karteireiter "Erinnerung/Folgemail" in Serienmail Nr. 8 (siehe meine ursprüngliche Antwort).
by s252607 (155 points)
ich probiere es gerade auch nochmal mit WegWerfAdressen zu 12Uhr zu testen. Ganz seltsam: jetzt kam der Link zur Bestätigung der E-Mail Adresse mit folgendem Betreff an:" M.A. Anna-Katharina Scholz schrieb" - ich heiße nicht so und habe als Absender SoSciSurvey angegeben und auch einen anderen Betreff vermerkt?
by SoSci Survey (327k points)
Könnten Sie mir diese E-Mail wohl bitte einmal an die info@soscisurvey.de weiterleiten. Am besten "als Anhang", damit ich auch die Kopfzeilen prüfen kann.
by s252607 (155 points)
> Ja, das war ja mit dem "expire" auch so gedacht, oder? Nach dem Versand ist er 43200 Sek. = 12 Stunden gültig.
Es sind doch noch keine 12 Stunden um, z. B. bei der Mail, die um 00:04 versandt worden sind (gerade ist es 11:47 Uhr)?

> In der Einstellung im Karteireiter "Erinnerung/Folgemail" in Serienmail Nr. 8 (siehe meine ursprüngliche Antwort).

Aber Serienmail 8 soll ja eine Erinnerung/Folgemail für Serienmail 2 sein, der Fragebogen (erstmals zugesandt in Serienmail 2) nicht ausgefüllt wurde...
by s252607 (155 points)
Gerne. Ich habe Ihnen die Mail zugesandt.
by s252607 (155 points)
edited by s252607
Ich muss gleich die aktuellen Versandtermine löschen, um die Einstellungen für Serienmail 8 zu prüfen. Dann prüfe ich hiernochmal, ob bei Art der Folgemail  „Erinnerung oder Fortsetzung“ eingetragen ist.
by s252607 (155 points)
edited by s252607
Der Test zu12:00 Uhr und 12:40 Uhr hat funktioniert, auf den Link zu B1 kann zugegriffen werden.

Der Fehler muss also wirklich bei der expire oder der Erinnerung sein.

Den Zeitpunkt für die Expire Funktion habe ich geändert:
mailSchedule(false, 2, $candidates[0], ['expire' => $candidates[0] + 43200]);
mailSchedule(false, 3, $candidates[1], ['expire' => $candidates[0] + 43200]);
mailSchedule(false, 4, $candidates[2], ['expire' => $candidates[0] + 43200]);
mailSchedule(false, 5, $candidates[3], ['expire' => $candidates[0] + 43200]);
mailSchedule(false, 6, $candidates[4], ['expire' => $candidates[0] + 43200]);

Für die Erinnerungen (Code unten) prüfe ich nochmal nach Löschen der vorbereiteten Serienmails, ob diese auf Art der Folgemail: "Erinnerung oder Fortsetzung" gesetzt sind.

Dann gehe ich in die Befragung und hoffe, das alles klappt.
by s252607 (155 points)
Entschuldigung nochmal, meine Befragung läuft nun. Serienmail für Tag 1 funktioniert. Wenige Probanden sind bei Tag 2 und der Link funktioniert NICHT. Wenn ich den Link für Tag 1 kopiere und manuell an die Personen für Tag 2 versende, funktioniert es.

Ich kann aber nicht, wie von Ihnen empfohlen, die Einstellung überprüfen und ändern. Da unter Serienmail unter "Erinnerung/Folgemail" bei "Art der Folgemail" berechtigterweise bereits steht, dass ein Versand für morgen vorbereitet ist und nichts mehr geändert werden kann.

Wie gehe ich am besten vor, damit morgen alle Probanden des Tages 2 keine defekte Mail erhalten?
by SoSci Survey (327k points)
> Wenige Probanden sind bei Tag 2 und der Link funktioniert NICHT

Wie äußert sich das "funktioniert nicht" genau? Hätten Sie exemplarisch einen Link für mich, um einen Blick darauf zu werfen?
by s252607 (155 points)
Ein defekter Link: https://www.soscisurvey.de/arbeiteninzeitenvonnewwork/?l=ger&d=73PKUAQPL39FPAFT

Wenn ich die Serienmail für Tag 1 kopiere und manuell rausschicke, funktioniert es.

Wie gehe ich am besten vor, damit die Probanden, die heute Link Tag 2 erhalten werden, am besten gar nicht erst einen defekten Link erhalten? Der Versand für diese Serienmail ist ja bereits vorbereitet. Ich kann aber auch nicht mehr nachschauen, ob unter "Erinnerungen/Folgemail" etwas falsch eingestellt ist: "Für diese Serienmail wurde bereits ein Versand vorbereitet. Die Einstellungen für Erinnerungs- bzw. Folgemails können nur geändert werden, so lange kein Versand ansteht. Sie können einen vorbereiteten Versand in den Versandoptionen löschen."

Soll ich am besten alle Mails für den Versand für heute manuell löschen? Und dann alle Mails manuell heute raussenden?
by SoSci Survey (327k points)
Für diesen Link ist eine Gültigkeit bis 08.07.2023 (um 3 Uhr nachts) hinterlegt. Die E-Mali wurde laut Datenbank am 10.07.2023 15:00 verschickt.

Ich habe die Gültigkeiten für die 4 verschickten Links jetzt erstmal rausgenommen. Es liegen für diese Serienmail noch drei weitere Links vor, für die keine Gültigkeit eingetragen war.

Das Problem leigt daran, dass Sie als Verfallsdatum  $candidates[0] + 43200  in den Code geschrieben haben.  In der zweiten Zeile müsste es aber  $candidates[1] + 43200  sein, sind verfallen alle Links ein paar Stunden nach dem ersten Versandzeitpunkt $candidates[0].

Ich würde für die bereits vorbereiteten Versandtermine das Verfallsdatum rausnehmen?
by s252607 (155 points)
Danke für die Rückmeldung!

Wie nehme ich denn das Verfallsdatum für die bereits vorbereiteten Versandtermine raus? Geht das nun rückwirkend über die Anpassung des expire-Befehls? Können Sie einssehen, ob die Links, die heute um 17 Uhr versandt würden, funktionieren werden?
by SoSci Survey (327k points)
> Wie nehme ich denn das Verfallsdatum für die bereits vorbereiteten Versandtermine raus?

Das habe ich für Sie manuell in der Datenbank erledigt.
by s252607 (155 points)
Alles klar, ich hoffe, damit wird es für die Einladung UND Erinnerung heute klappen. VIELEN DANK!
by SoSci Survey (327k points)
Sollte es wider Erwarten nicht funktionieren, posten Sie bitte gleich den defekten Link, dann kann ich mir das in der Datenbank ansehen und ggf. noch nachsteuern.
by s252607 (155 points)
Danke! Leider würden es heute bei Tag sehr, sehr viele defekte Links werden (über 80). Ich habe den expire Befehl  überall angepasst (siehe unten). Ideal wäre es deswegen, dass der Link bei allen funktioniert.

$candidates = [(
   strtotime('next Monday 00:00:00'),
   strtotime('next Tuesday 00:00:00'),
   strtotime('next Wednesday 00:00:00'),
   strtotime('next Thursday 00:00:00'),
   strtotime('next Friday 00:00:00'),
];

$nextDay = min($candidates);

$reference = strtotime('-14 hours');
$candidates = [
   strtotime('next Monday 17:00:00', $reference),
   strtotime('next Tuesday 17:00:00', $reference),
   strtotime('next Wednesday 17:00:00', $reference),
   strtotime('next Thursday 17:00:00', $reference),
   strtotime('next Friday 17:00:00', $reference),
];

sort($candidates);

mailSchedule(false, 2, $candidates[0], ['expire' => $candidates[0] + 43200]);
mailSchedule(false, 3, $candidates[1], ['expire' => $candidates[1] + 43200]);
mailSchedule(false, 4, $candidates[2], ['expire' => $candidates[2] + 43200]);
mailSchedule(false, 5, $candidates[3], ['expire' => $candidates[3] + 43200]);
mailSchedule(false, 6, $candidates[4], ['expire' => $candidates[4] + 43200]);



// Erinnerungen
mailSchedule(false, 8, $candidates[0] + 150 * 60, ['status' => 'no-response']);
mailSchedule(false, 9, $candidates[1] + 150 * 60, ['status' => 'no-response']);
mailSchedule(false, 10, $candidates[2] + 150 * 60, ['status' => 'no-response']);
mailSchedule(false, 11, $candidates[3] + 150 * 60, ['status' => 'no-response']);
mailSchedule(false, 12, $candidates[4] + 150 * 60, ['status' => 'no-response']);
by SoSci Survey (327k points)
> Ideal wäre es deswegen, dass der Link bei allen funktioniert.

Dass der Fehler im Code nicht ideal war, das brauchen wir, glaube ich, nicht zu vertiefen :) Aber ich bin recht zuversichtlich, dass ich heute Vormittag alle Links angepasst habe. Nur ... direkte Eingriffe in die Datenbank sind ein wenig komplexer. Ich kann eben nicht versprechen, dass ich wirklich nichts übersehen habe.
by s252607 (155 points)
Das war auch mein Fehler im Code :-)
Dankeschön! Das hört sich gut an.
by s252607 (155 points)
Puhhh, scheint zu funktionieren! Danke!!!
by s252607 (155 points)
Das ist hoffentlich die letzte Frage: Eine Probandin hatte den Einstiegsfragebogen ausgefüllt und dementsprechend heute einen Tagesfragebogen erhalten. Sie möchte aber (wegen Urlaub) erst ab Dienstag teilnehmen.

Gibt es eine Möglichkeit die vorbereiteten E-Mails an ihre Adresse rauszunehmen?

Anhand ihrer internen Nummer müsste ich ja dann nächste Woche manuell die Einladungen raussenden können.
by SoSci Survey (327k points)
> Sie möchte aber (wegen Urlaub) erst ab Dienstag teilnehmen.

Nein, SoSci SUrvey zeigt individuelle Versandtermine für Adresseinträge nicht an, weil man damit sehr schnell die Anonymität ausheben könnte.

Die einzige Lösung, die mir für diesen Einzelfall spontan einfällt: Die E-Mail-Adresse in der Adressliste deaktivieren (oder löschen) un dann am Dienstag den Einsteigsfragebogen nochmal ausfüllen.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...