Hallo Florian,
Beleuchtfix hat geschrieben:...
Bei meinem Newsletter habe ich eine Adresse
x+y@zzz.de. Diese Adresse wird als fehlerhaft beanstandet. Ich denke einmal, das das
+ nicht richtig geprüft wird, kann aber leider den Code nicht finden, an dem dies angepasst werden müsste.
Habt ihr einen Tipp, wo (und evtl auch gleich wie) ich das ändern muss?...
die Validierung der E-Mail Adresse beim Contenido Modul "Newsletter_Handler" findet in der Funktion isValidMail() statt, die Funktion findest du in der in der Datei contenido/includes/functions.general.php ab Zeile 730.
So, wie ich das sehe, wird die Funktion nicht mit der Strict-Option aufgerufen, um die Validierung kümmert sich dann die Zeile 754
Code: Alles auswählen
return preg_match("/^[0-9a-z]([-_.]*[0-9a-z]*)*@[a-z0-9-]+\.([a-z])/i", $sEMail);
und darin wird das Vorkommen eines +-Zeichens nicht unterstützt.
Dein Problem mit der E-Mail
x+y@zzz.de sollte sich lösen, wenn du in der Modulausgabe die Überprüfung auf strict umstellst, also der Funktion isValidMail() jeweils den 2. Parameter true übergibst.
Sehe gerade, dass da in der Funktion isValidMail() noch ein Kleinigkeit zu korrigieren ist, die Zeile 752 von
Code: Alles auswählen
return preg_match('/^' . $$sLocalRegEx . '@' . $sDomainRegEx . $sTLDRegEx . '$/i', $sEMail);
in
Code: Alles auswählen
return preg_match('/^' . $sLocalRegEx . '@' . $sDomainRegEx . $sTLDRegEx . '$/i', $sEMail);
ändern, dann sollte es klappen.
Alternativ lässt sich auch die RegEx in Zeile 754 um das +-Zeichen erweitern:
Code: Alles auswählen
return preg_match("/^[0-9a-z]([-_.+]*[0-9a-z]*)*@[a-z0-9-]+\.([a-z])/i", $sEMail);
Gruß
xmurrix