Ankündigung

Einklappen
Keine Ankündigung bisher.

Mail Versandt vom ANDORID - HandyBrowser

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mail Versandt vom ANDORID - HandyBrowser

    Hallo,

    ich habe hier ein total komisches und merkwürdiges Problem das nur auf meinem ANDROID-Handy (Samsung A5) auftritt und auch nur, wenn ich den Standard-Browser verwende.
    Auf dem Handy läuft auch google Chrome, darunter läuft es einfwandfrei, aber wie halt gesagt, im Standard-Browser auf dem Handy nicht...

    Selbst im iPhone 4 Test-Simulator und allen PC Web Browsern klappt es... Total komisch...


    Also:

    Ich hab ein Formular mit EMail-Feld und TextArea für EMail Versand.
    Keine FORM, ich versende via AJAX / jQuery.

    Nun wenn es Browser-Spezifisch sein würde, müsste es wohl am JavaScript liegen, lustigerweise tritt das Problem aber in einem PHP-Script auf.

    Dieses PHP-Script soll die Gültigkeit der E-Mail-Adresse prüfen.
    Ich hab in allen Testfällen in allen Browsern immer die gleiche und vorallem gültige GMX E-Mail-Adresse eingegeben.
    LariFari@gmx.de zum Beispiel...

    Diese Funktion liefert normalerweise true zurück,
    aber eben nicht, wenn ich den besagten Standard-Browser vom Samsung A5 verwende.
    Was kann den das sein, dass das nicht geht?

    Wenn ich unter den Funktions-Kopf einfach ein
    return true;
    schreibe und das ding laufen lasse, funktioniert es und ich bekomme die E-Mail von der richtigen Adresse zugestellt.
    Das heißt dich, dass die Adresse, die da durchgejagt wird, stimmt, denn ich seh die Adresse ja auch ohne jegliche Fehlerzeichen oder gar Leerzeichen in dem Versendet-Feld meiner empfangenen Nachricht.
    Aber ohne das return true in der ersten Zeile unterm Funktionskopf gibt es ein False, und das obwohl es aber doch richtig ist. Und NUR bei diesem einen Browser.
    Ich machs ja nicht, damit ich mir darüber Mails senden kann, aber was, wenn mal ein Seitenbesucher den besagten Browser verwendet?



    PHP-Code:
    ​function CheckEMailAddress($email){
    // return true;
    $pattern "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/";
    if (
    preg_match($patterntrim($email))){
    return 
    true;
    }else {
    return 
    false;
    }

    Weiß jemand, woran das liegen könnte?





  • #2
    wie wäre es mit
    PHP-Code:
    filter_var$emailFILTER_VALIDATE_EMAIL); 
    http://php.net/manual/en/filter.filters.validate.php
    http://php.net/manual/en/function.filter-var.php

    Kommentar


    • #3
      Hab den Fehler gefunden...
      Das Pattern erlaubt nur Kleinbuchstaben und in allen Browsern war die EMailadresse als kleingeschrieben vorbelegt
      Was peinlich... War wohl eben doch nicht die GLEICHE Adresse

      $pattern = "/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,})$/";

      So klappts jetzt...

      Kommentar


      • #4
        Ich würde eher was fertiges verwenden als sowas ungeprüftest Selbstgebasteltes.

        Kommentar


        • #5
          Mit dem Regex werden so viele gültige Mailadressen nicht erkannt. Vollkommen unbrauchbar das Teil.

          er richtige RFC konforme Regex hat so 5588 Zeichen. (http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html) Wenn man da all das rausschmeist was Spezialfälle abdeckt die man nicht braucht sind es immer noch ~4000 Zeichen. und Du willst das mit 83 Zeichen hinbekommen. LOL!
          PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

          Kommentar


          • #6
            Danke für die Tipps.
            Kann mir mal einer ein Beispiel nennen,welche Adresse das Ding nicht schlucken würde?
            Ich hab das Regex nicht so vorgeschrieben und auch nicht selbst gebastelt.

            Also eigentlich war DAS die Fertiglösung

            Kommentar


            • #7
              Was haltet ihr in diesem Zusammenhang eigentlich von der Browser-Prüfung via required-Flag?!
              Wenn ich einem Input-Feld den Typen "email" verpasse und das Feld auf require setze, kommt eine Browser-Eigene Prüfung...

              Da habe ich aber schon festgestellt, er beanstandet nicht, wenn die Adresse hinten keine Länderkennung enthält..

              Beispiel: "Hallo@gmx" würde die browserspezifische Funktion nicht kritisieren...
              Ist es nicht mehr erforderlich, hinter dem Server ein ".Länderkennung" zu haben?


              <input type="email" name="email" require>

              Kommentar


              • #8
                Immer serverseitig auch prüfen. Denke an gefakte Formulare, alte Browser, div. Addons etc..
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Zitat von IceEagle Beitrag anzeigen
                  Da habe ich aber schon festgestellt, er beanstandet nicht, wenn die Adresse hinten keine Länderkennung enthält..

                  Beispiel: "Hallo@gmx" würde die browserspezifische Funktion nicht kritisieren...
                  Hallo@gmx ist eine zulässige Adresse.
                  siehe auch https://en.wikipedia.org/wiki/Email_...mail_addresses

                  Kommentar


                  • #10
                    Zitat von IceEagle Beitrag anzeigen
                    Danke für die Tipps.
                    Kann mir mal einer ein Beispiel nennen,welche Adresse das Ding nicht schlucken würde?
                    - foo+bar@example.org
                    - foo!bar@example.org
                    - $pinatwachtel@example.de

                    usw. usf.

                    Da gibts noch einige andere Zeichen. Aber das ist nicht von Bedeutung. Nimm einfach was Dir eT18 vorgeschlagen hat. Das ist zwar nicht perpekt aber in den meisten Fällen ausreichend.
                    PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

                    Kommentar


                    • #11
                      Zitat von eT18 Beitrag anzeigen
                      wie wäre es mit
                      PHP-Code:
                      filter_var$emailFILTER_VALIDATE_EMAIL); 
                      Zitat von Ulfikado Beitrag anzeigen
                      Nimm einfach was Dir eT18 vorgeschlagen hat. Das ist zwar nicht perpekt aber in den meisten Fällen ausreichend.
                      Vorsicht... zB schlägt es bei allen Umlautdomains fehlt, die man vorher nicht "ge-punycoded" hat.

                      Siehe : http://php-de.github.io/jumpto/stand...il-validation/

                      LG
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Ja genau. Vorher Unicode in Puny-Code Schreibweise umwandeln. Dazu entweder sicherstellen das die php5-intl Erweiterung aktiviert ist und idn_to_ascii nutzen, oder halt eine extra Library die das kann.
                        PHP-Manual ¡ mysql_* ist veraltet ¡ Debugging: Finde DEINE Fehler selbst ¡ Passwort-Hashing ¡ Prepared Statements

                        Kommentar


                        • #13
                          Okay vielen Dank für die vielen Tipps. Ich hatte da irgendwie noch die Old school denke, wie eine E-Mail-Adresse früher auszuesehen hat und da gabs nur ABC123@ABC123.XYZ.

                          Kommentar


                          • #14
                            Wozu der ganze Aufwand?
                            Egal ob die email syntaktisch korrekt ist, ohne double-optin kann man auch syntaktisch korrekte, aber nicht belegte Adressen angeben.
                            Im Endeffekt ist es einerlei: Sende eine Email an eine syntaktisch falsche Adresse oder eine syntaktisch richtige, aber nicht vergebene Adresse, sie wird nicht ankommen...
                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar

                            Lädt...
                            X