Hallo!
Ich habe vor, dass in der Webseite, die ich gerade erstelle (www.mv-erla.at), die Mitglieder des geschützten Bereichs E-Mails über ein Formular (mit EFG) an die Abonnenten der verschiedenen Newsletter schicken können.
Dies realisiere ich mit der Datei "EfgCallbacks.php", die ich unter "system/modules/efg" eingefügt habe und folgenden Code enthält:
PHP-Code:
// $arrSubmitted enthalt die POST-Werte
// $arrForm enthaelt die 'Formular-Konfiguration'
class EfgCallbacks extends Backend
{
public function exampleMailRecipient($arrSubmitted, $arrFiles, $intOldId, &$arrForm)
{
// Einschraenkung auf das Formular
if ($arrSubmitted['FORM_SUBMIT'] == 'auto_formmailsend')
{
// überschreiben des Wertes von 'Betreff' mit dem Wert aus dem Fomularfeld ['subject'
$arrForm['formattedMailSubject'] = $arrSubmitted['subject'];
// überschreiben des Wertes von 'Empfänger-Adresse' mit dem Wert aus dem Fomularfeld 'recipient'
//$arrForm['formattedMailRecipient'] = $arrSubmitted['recipient'];
// Hole Mailadressen der Abonnenten eines bestimmten Newsletter-Verteilers
// Die Werte des Select-Menüs 'grouprecipient'sind die P-IDs der verschiedenen Newsletter.
$member = $this->Database->prepare('SELECT email FROM tl_newsletter_recipients WHERE pid LIKE ?')->execute('%"'.$arrSubmitted['grouprecipient']);
while($member->next())
{
$strEmpfaenger = $strEmpfaenger . $member->email . ", ";
}
$arrForm['formattedMailRecipient'] = $strEmpfaenger;
$arrSubmitted['recipient'] = $arrSubmitted['recipient'] . ", " . $strEmpfaenger;
}
return $arrSubmitted;
}
}
in der "dcaconfig.php" hab ich folgende Zeile hinzugefügt:
PHP-Code:
$GLOBALS['TL_HOOKS']['processEfgFormData']['callback_02'] = array('EfgCallbacks', 'exampleMailRecipient');
Nach dem Drücken des Absenden-Buttons wird ganz normal weitergeleitet.
Die Mail kommt jedoch nicht beim Empfänger an bzw. wird gar nicht verschickt?
Hat wer eine Idee, an was dies liegen könnte?
Wenn ich einen Empfänger über ein Formularfeld eingebe, siehe ausgeklammerter Bereich
PHP-Code:
// überschreiben des Wertes von 'Empfänger-Adresse' mit dem Wert aus einem Formularfeld
$arrForm['formattedMailRecipient'] = $arrSubmitted['recipient'];
Funktioniert es einwandfrei. Die Mail kommt beim Empfänger an.
Mit dem Auslesen der Abonnenten des jeweiligen Newsletter-Verteilers (Parent-Id des Newletters wird mit der Select-Box 'grouprecipient' übergeben, funktioniert es nicht mehr, sie oben beschriebenes Problem.
Ich schätze, es könnte an diesem Programmteil liegen, komme aber nicht dahinter:
PHP-Code:
// Hole Mailadressen der Abonnenten eines bestimmten Newsletter-Verteilers
// Die Werte des Select-Menüs 'grouprecipient'sind die P-IDs der verschiedenen Newsletter.
$member = $this->Database->prepare('SELECT email FROM tl_newsletter_recipients WHERE pid LIKE ?')->execute('%"'.$arrSubmitted['grouprecipient']);
while($member->next())
{
$strEmpfaenger = $strEmpfaenger . $member->email . ", ";
}
$arrForm['formattedMailRecipient'] = $strEmpfaenger;
$arrSubmitted['recipient'] = $arrSubmitted['recipient'] . ", " . $strEmpfaenger;
Vielen, vielen Dank
martinmv