Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:functions:mailsend [05.10.2018 14:29] – [Beispiel 2] adminde:create:functions:mailsend [08.11.2021 09:50] (aktuell) admin
Zeile 2: Zeile 2:
  
 ''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.
Zeile 10: Zeile 12:
   * //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 =====+===== Beispiel: Info an Projektleitung =====
  
-Im Interview soll die E-Mail-Adresse eines Kollegen abgefragt, aber nicht gespeichert werdenAn 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 Seiteim Fragebogen eine weitere Seite einAuf dieser platzieren Sie folgenden PHP-Code.
-<code html> +
-<div+
-  E-Mail-Adresse des Kollegen: +
-  <input type="textname="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 verschicktIm 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 =====+ 
 +===== 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.
Zeile 51: Zeile 52:
 </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>
de/create/functions/mailsend.txt · Zuletzt geändert: 08.11.2021 09:50 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