php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.09.2009, 12:38  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard [Erledigt] Problem mit PHPmailer - Syntaxpruefung von Emailadressen beim Versand

Bitte verschieben, wenn es eine bessere Rubrik gibt.

Keine Frage, sondern eine Beobachtung, die für den einen oder anderen vielleicht auch hilfreich ist:

Ich habe seit der Umstellung auf PHPmailer 5.0 Probleme mit verschiedenen Mailinglisten. Zu beobachten ist beim Versand folgende Fehlermeldung:

[emailadresse] - You must provide at least one recipient email address.

Die angemotzten Emailadressen haben alle eins gemeinsam: Sie haben einen Punkt genau vor dem @-Zeichen: foo.@example.org

Die Fehlermeldung wird erzeugt durch diesen Code im PHPmailer:

Zeile 464:
PHP-Code:
  public static function ValidateAddress($address) {
    if (
function_exists('filter_var')) { //Introduced in PHP 5.2
      
if(filter_var($addressFILTER_VALIDATE_EMAIL) === FALSE) {
        return 
false
Der PHP-Filter sortiert diese Emailadressen deshalb aus, weil sie tatsächlich nicht RFC-kompatibel sind. Punkte vor dem @ sind tatsächlich per RFC ausgeschlossen.

Tatsache ist aber, dass viele Mailprovider das offensichtlich zulassen oder zugelassen haben. Die Adressen in der Liste sind DOI-geprüft und müssen daher auch existieren. Die Regex, mit der die Adressen damals vorgeprüft wurden, hat das durchgelassen. Die alte PHP-Mailer-Version hat die FILTER-Funktion anscheinend nicht genutzt, es war mir da jedenfalls niemals aufgefallen.

Ich habe mir dadurch geholfen, dass ich den PHPmailer gepatcht habe und keine Prüfung mehr beim Mailversand mache.

Es stellt sich zugleich auch die Frage, ob man hier sogar von einem Bug in PHP ausgehen kann. Zwar wird das Email-RFC korrekt abgebildet, doch entspricht das Verhalten eben nicht der Realität.
Wolla ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.09.2009, 13:04  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hm schwierig. Würde mich standardmäßig ans RFC halten und die Funktionalität per Bugfix-Option manuell anschalten lassen. Glaube PHP hatte so eine Bugfix-Option ja selbst mal in die php.ini eingebaut.

PHP-Code:
<?php
My_PHPMailer 
extends PHPMailer
{
  protected 
$_bugfixAllowInvalidEmail false;

  public function 
isBugfixAllowInvalidEmail($allow null) {
    if (
$allow !== null) {
      
$this->_bugfixAllowInvalidEmail = (bool)$allow;
    }
    return 
$this->_bugfixAllowInvalidEmail;
  }
  
  public static function 
ValidateAddress($address) {
    
// hier $this->isBugfixAllowInvalidEmail() einbauen
    
if (function_exists('filter_var')) { //Introduced in PHP 5.2
      
if(filter_var($addressFILTER_VALIDATE_EMAIL) === FALSE) {
        return 
false;  
    
// ..
  
}
}
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 14.09.2009, 13:13  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Dito. Die Frage ist, welches der richtige Weg ist. Komplett die Validierung ausschalten kanns ja auch nicht sein. Sich an die RFCs zu halten finde ich vollkommen in Ordnung, wenn auch praxisfern.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 14.09.2009, 14:30  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Bei der Eingabe einer Adresse durch den User wird zunächst die Syntax geprüft. Sieht die Eingabe nach einer Emailadresse aus, dann die Kontrollmail ausgeschickt, und der DOI-Klick registriert. Erst wenn der user in der Kontrollmail geklickt hat, dann wird die Adresse in die Liste übernommen.

Ich sehe absolut keinen Sinn darin, die Syntaxprüfung bei jedem Newsletter-Aussendung erneut durchzuführen.
Wolla ist offline   Mit Zitat antworten
Alt 14.09.2009, 14:38  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Dann willst du also weiterhin erlauben, dass sich User mit so einer Emailadresse anmelden?
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 14.09.2009, 15:23  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.849
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Soll ich die Fehlermeldung ausgeben:
"Guten Tag. Sie haben eine Emailadresse, die Sie gar nicht haben dürfen. Bitte besorgen Sie sich eine neue und kommen Sie dann wieder." ?
Wolla ist offline   Mit Zitat antworten
Alt 14.09.2009, 15:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Das sagt man bei anderen Angaben doch auch. Usernamen mit Sonderzeichen, zu kurze Passwöter, etc. Für Nicht-Programmierer ist das alles das selbe, solange man den Text sinnvoll formuliert.

Diese Emailadresse ist ungültig oder wird von unserem System nicht unterstützt. Bitte beachten Sie die Hinweise unter Bla Keks.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 14.09.2009, 16:20  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.069
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ich versteh das Problem nicht, dann akzeptier sie und arbeite mit dem Workaround oben.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Php mail problem Jojomeurer PHP Tipps 2009 4 19.02.2009 00:15
Problem mit Basedir in PhP cmuch05 Datenbanken 9 08.01.2009 14:17
[Erledigt] Problem: PHP Selbe Datei mehr als 1 Mal soulan PHP Tipps 2008 13 28.11.2008 22:51
Problem Upload mehrere Dateien und schreiben in DB Lapje PHP Tipps 2008 1 22.10.2008 13:12
utf8 Problem (Daten aus DB auslesen) go1denboy PHP Tipps 2008 1 23.09.2008 12:19
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
PHPmailer: Problem Bilder extern / absolut verlinken, nicht als inline attachment brtl PHP-Fortgeschrittene 2 16.09.2008 20:59
PHPMailer Problem ochsi PHP Tipps 2008 7 08.07.2008 10:34
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
Problem mit phpmailer PHP Tipps 2004 1 25.10.2004 18:52
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
you must provide at least one recipient email address., you must provide at least one recipient email address, phpmailer you must provide at least one recipient email address, phpmailer you must provide at least one recipient email address., you must provide at least one recipient email address phpmailer, phpmailer typo3, typo3 phpmailer, \you must provide at least one recipient email address.\, php filter_validate_email umlaute, typo3 php mailer, http://www.php.de/software-design/59031-erledigt-problem-mit-phpmailer-syntaxpruefung-von-emailadressen-beim-versand.html, filter_var umlaute, phpmailer \you must provide at least one recipient email address\, phpmailer validieren, phpmailer punkt in der emailadresse, recipientadress punkt vor @, you must provide at least one recipient email addres, you must provide at least one recipient email address. phpmailer, phpmailer and php 5.2, \you must provide at least one recipient email address\

Alle Zeitangaben in WEZ +1. Es ist jetzt 23:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum