Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
de:create:functions:mailsend [05.10.2018 14:29] – [Beispiel 2] admin | de:create:functions:mailsend [08.11.2021 09:50] (aktuell) – admin |
---|
| |
''void **mailSend**(string //E-Mail//, int //SerienmailID//, [int //Zeitpunkt//], [string //Link//], [string //C1//, string //C2//, string //C3//, string //C4//, string //C5//])'' | ''void **mailSend**(string //E-Mail//, int //SerienmailID//, [int //Zeitpunkt//], [string //Link//], [string //C1//, string //C2//, string //C3//, string //C4//, string //C5//])'' |
| |
| ''void **mailSend**(string //E-Mail//, int //SerienmailID//, array //Einstellungen//)'' |
| |
Die Funktion ''mailSend()'' verschickt die Serienmail mit der Kennung //SerienmailID// sofort oder zu einem definierten Zeitpunkt an eine vorgegebene E-Mail-Adresse. Die E-Mail-Adresse muss -- anders als bei den Funktionen ''[[:de:create:functions:mailResume]]'' und ''[[:de:create:functions:mailSchedule]]'' -- nicht in der Adressliste des Befragungsprojekts bekannt sein. | Die Funktion ''mailSend()'' verschickt die Serienmail mit der Kennung //SerienmailID// sofort oder zu einem definierten Zeitpunkt an eine vorgegebene E-Mail-Adresse. Die E-Mail-Adresse muss -- anders als bei den Funktionen ''[[:de:create:functions:mailResume]]'' und ''[[:de:create:functions:mailSchedule]]'' -- nicht in der Adressliste des Befragungsprojekts bekannt sein. |
* //Link// (optional)\\ Der Link, der in der Serienmail für den Platzhalter ''%link%'' verwendet wird. Falls kein Link angegeben wird, wird der [[:de:survey:url]] ohne weitere Spezifikation eines Fragebogens verwendet. | * //Link// (optional)\\ Der Link, der in der Serienmail für den Platzhalter ''%link%'' verwendet wird. Falls kein Link angegeben wird, wird der [[:de:survey:url]] ohne weitere Spezifikation eines Fragebogens verwendet. |
* //C1// bis //C5// (optional)\\ Wenn Sie hier einen Text angeben (optional), können Sie diesen Text mithilfe der Platzhalter ''%custom1%'' bis ''%custom5%'' in der Serienmail verwenden. In Verbindung mit ''value()'' können Sie beispielsweise Antworten aus dem laufenden Interview in der E-Mail anzeigen. | * //C1// bis //C5// (optional)\\ Wenn Sie hier einen Text angeben (optional), können Sie diesen Text mithilfe der Platzhalter ''%custom1%'' bis ''%custom5%'' in der Serienmail verwenden. In Verbindung mit ''value()'' können Sie beispielsweise Antworten aus dem laufenden Interview in der E-Mail anzeigen. |
| * //Einstellungen// (optional)\\ Wenn als dritter Parameter ein Array übergeben wird, so werden die weiteren Einstellungen aus diesem Array entnommen. Folgende Schlüssel sind möglich: |
| * ''%%'sendtime'%%'' -- entspricht dem Parameter //Zeitpunkt// |
| * ''%%'update'%%'' -- Standardmäßig wird mit jedem Aufruf von ''mailSend()'' eine E-Mail versendet. Wenn für '''update''' ein Wert festgelegt ist und es wurde in dem Befragungsprojekt mit ''mailSend()'' bereits eine E-Mail für den Versand geplant (noch nicht versandt), welche denselben Wert für '''update''' enthält, dann wird der Versandtermin und alle Daten aktualisiert anstatt eine weitere E-Mail vorzubereiten. Wenn Sie z.B. nur eine E-Mail pro Interview versenden möchten, dann verwenden Sie z.B. ''%%'update' => caseToken()%%''. |
| * ''%%'%link%'%%'' -- entspricht dem Parameter //Link// |
| * ''%%'%custom1%'%%'' bis '''%custom5%''' -- Inhalte für die gleichnamigen Platzhalter in der Serienmail |
| * ''%%'attach'%%'' -- Variablenkennung (string) oder mehrere Kennungen (array) hochgeladener Dateien (Frage vom Typ "Datei hochladen"), welche an die E-Mail angehängt werden sollen. Geben Sie im Array einen Schlüssel an, um den Dateinamen für den Dateianhang festzulegen. |
| * ''%%'unique'%%'' -- Ein beliebiger Wert, welcher den Inhalt und/oder Empänger der Nachricht bezeichnet. Standardmäßig dient die E-Mail-Adresse als Merkmal für den Versand. Wenn ein benutzerdefinierter Unique-Wert angegeben wird, kann dieselbe Serienmail mehrfach an dieser E-Mailadresse versendet werden. Voraussetzung ist, dass für jeden Versand an anderer Unique-Wert angegeben wird. |
| |
| |
===== Hinweise ===== | ===== Hinweise ===== |
| |
* Mit der Funktion ''mailSend()'' kann pro Interview eine bestimmte Serienmail nur einmal an eine bestimmte E-Mail-Adresse verschickt werden. | * Mit der Funktion ''mailSend()'' kann pro Interview eine bestimmte Serienmail nur einmal an eine bestimmte E-Mail-Adresse verschickt werden. Sie können dies mittels ''%%'unique'%%'' anpassen. |
* Innerhalb eines Interviews können mittels ''mailSend()'' maximal 20 E-Mails verschickt werden. | * Innerhalb eines Interviews können mittels ''mailSend()'' maximal 20 E-Mails verschickt werden. |
| * Die E-Mail-Adressen werden zusammen mit einem Zeitstempel in den Logfiles des Servers gespeichert. Die Aufbewahrungszeit der Logfiles ist abhängig von der Konfiguration des Servers. |
| |
===== Beispiel 1 ===== | ===== Beispiel: Info an Projektleitung ===== |
| |
Im Interview soll die E-Mail-Adresse eines Kollegen abgefragt, aber nicht gespeichert werden. An die E-Mail-Adresse soll eine Einladung mit Verweis auf das aktuelle Interview (Fall-Nummer CASE) verschickt werden. | Jedes mal wenn ein Interview abgeschlossen wir, soll eine E-Mail an die Projektleitung ''leitung@example.com'' verschickt werden. |
| |
Um die E-Mail-Adresse abzufragen, wird auf Seite 5 im Fragebogen ein HTML-Eingabefeld im Fragebogen platziert. | * Erstellen Sie eine Serienmail unter **Einladungen verschicken** -> **Serienmails** |
| * Fügen Sie dafür vor der "Letzten Seite" im Fragebogen eine weitere Seite ein. Auf dieser platzieren Sie folgenden PHP-Code. |
<code html> | |
<div> | |
E-Mail-Adresse des Kollegen: | |
<input type="text" name="email_colleague" style="width: 160px" /> | |
</div> | |
</code> | |
| |
Auf der folgenden Fragebogen-Seite (nicht später!) wird die angegebene E-Mail-Adresse mittels ''[[:de:create:functions:readget]]'' ausgelesen und die Serienmail mit der Kennung ''2'' an diese E-Mail-Adresse verschickt. Im Link zum Fragebogen wird die aktuelle Fall-Nummer als Referenz angehängt. | |
| |
<code php> | <code php> |
$email = readGET('email_colleague', false); | mailSend('leitung@example.com', 1); |
if (trim($email) !== '') { | |
$link = 'https://www.soscisurvey.de/PROJEKT/?r='.caseNumber(); | |
mailSend($email, 2, 0, $link); | |
} | |
</code> | </code> |
| |
| Die ''1'' muss natürlich gegen die Kennung/Nummer der Serienmail ersetzt werden, welche verschickt werden soll. |
| |
===== Beispiel 2 ===== | |
| ===== Beispiel: Daten an Projektleitung ===== |
| |
Ein Teilnehmer füllt einen Test aus, der Punktwert wurde in Variable ''$points'' berechnet und soll nun zusammen mit der Teilnehmern-Kennung (SERIAL) an eine Mailadresse geschickt werden, damit der Forscher automatisch über abgeschlossene Tests informiert wird. | Ein Teilnehmer füllt einen Test aus, der Punktwert wurde in Variable ''$points'' berechnet und soll nun zusammen mit der Teilnehmern-Kennung (SERIAL) an eine Mailadresse geschickt werden, damit der Forscher automatisch über abgeschlossene Tests informiert wird. |
</code> | </code> |
| |
Auf der letzten Seite des Fragebogen würde nun unter der Berechnung des Punktswerts (''$points'') folgender PHP-Code platziert, um das Ergebnis an ''store@example.com'' zu senden. | Auf der letzten Seite des Fragebogens würde nun unter der Berechnung des Punktswerts (''$points'') folgender PHP-Code platziert, um das Ergebnis an ''store@example.com'' zu senden. |
| |
<code php> | <code php> |
mailSend('store@example.com', 1, 0, NULL, caseSerial(), $points); | mailSend('store@example.com', 1, 0, NULL, caseSerial(), $points); |
| </code> |
| |
| ===== Beispiel: E-Mail-Adresse nicht speichern ===== |
| |
| Im Interview soll die E-Mail-Adresse eines Kollegen abgefragt, aber nicht gespeichert werden. An die E-Mail-Adresse soll eine Einladung mit Verweis auf das aktuelle Interview (Fall-Nummer CASE) verschickt werden. |
| |
| **Hinweis:** Dieser Anwendungsfall lässt sich i.d.R. einfacher mit einer Frage vom Typ [[:de:create:questions:email]] und ganz ohne PHP-Code umsetzen. Hier ist nur eine alternative Lösung mittels ''mailSend()'' dargestellt. |
| |
| Um die E-Mail-Adresse abzufragen, wird auf Seite 5 im Fragebogen ein HTML-Eingabefeld im Fragebogen platziert. |
| |
| <code html> |
| <div> |
| E-Mail-Adresse des Kollegen: |
| <input type="text" name="email_colleague" style="width: 160px" /> |
| </div> |
| </code> |
| |
| Auf der folgenden Fragebogen-Seite (nicht später!) wird die angegebene E-Mail-Adresse mittels ''[[:de:create:functions:readget]]'' ausgelesen und die Serienmail mit der Kennung ''2'' an diese E-Mail-Adresse verschickt. Im Link zum Fragebogen wird die aktuelle Fall-Nummer als Referenz angehängt. |
| |
| <code php> |
| $email = readGET('email_colleague', false); |
| if (trim($email) !== '') { |
| $link = 'https://www.soscisurvey.de/PROJEKT/?r='.caseNumber(); |
| mailSend($email, 2, 0, $link); |
| } |
</code> | </code> |