Raketenscripter: Hat schon mal jemand eine „Umlaut-Domain“ in einer Maildadresse gesehen?

Casus knaktus: „Umlaut-Domain“ in einer Maildadresse

  • Die Literatur sagt über die „reine Theorie“: „Das geht"
  • Die gefundene Literatur sagt aber weiter: "Praktisch behaupten die (viele) Mailclients, die Adresse wäre ungültig..." - was übrigens durch filter_var( $address, FILTER_VALIDATE_EMAIL ); von PHP sozusagen bestätigt wird.

Ich schreibe gerade nochmal einen eigenen Wrapper für mb_send_mail(), weil mir die bekannten (Swift, PHPMailer) irgendwie zu umständlich erscheinen…

… und frage mich gerade, ob das hier überhaupt notwendig ist:

if ( function_exists( 'idn_to_ascii' ) ) {
    list( $user, $domain ) = preg_split( '/@/', $address );
    $address = $user . '@' . idn_to_ascii( $domain );
}
$address = filter_var( $address, FILTER_VALIDATE_EMAIL );

$address ist bereits definitiv die „reine“ Mail-Adresse, also foo@bar aus

  • Foo Bar <foo@bar>
  • Bar, Foo <foo@bar>
  • <foo@bar>
  • foo@bar

„Die Literatur an der Fundstelle“ behauptet, man solle deshalb selbst den ASCII-Name aus der IDN-Domain bauen und diese dem Mailprogramm übergeben. Das tut das obige - aus 'fastüx.org' wird z.B. 'xn--fastx-nva.org'

Nur: Hat irgendwer schon mal eine Mailadresse mit Nicht-ASCII-Zeichen gesehen? Oder glaubt jemand, dass die zukünftig auftreten?

  1. Hallo,

    Casus knaktus: „Umlaut-Domain“ in einer Maildadresse

    • Die Literatur sagt über die „reine Theorie“: „Das geht"
    • Die gefundene Literatur sagt aber weiter: "Praktisch behaupten die (viele) Mailclients, die Adresse wäre ungültig..." - was übrigens durch filter_var( $address, FILTER_VALIDATE_EMAIL ); von PHP sozusagen bestätigt wird.

    das ist auch mein Kenntnisstand (bis auf den Test mit PHP, den habe ich nicht durchgeführt). Aber das Fazit "theoretisch ja, praktisch nein" kann ich bestätigen.

    Nur: Hat irgendwer schon mal eine Mailadresse mit Nicht-ASCII-Zeichen gesehen? Oder glaubt jemand, dass die zukünftig auftreten?

    Gesehen habe ich noch keine. Aber bei Webadressen wurden Umlautdomains ja auch sehr zögerlich angenommen, und bis heute liest man noch hier und da den guten Rat, eine reine ASCII-Domain als Alias einzurichten, wenn man eine Umlautdomain registriert.

    Live long and pros healthy,
     Martin

    --
    Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
    1. @@Der Martin

      Nur: Hat irgendwer schon mal eine Mailadresse mit Nicht-ASCII-Zeichen gesehen? Oder glaubt jemand, dass die zukünftig auftreten?

      Das hoffe ich doch, dass sie das tun.

      … bis heute liest man noch hier und da den guten Rat, eine reine ASCII-Domain als Alias einzurichten, wenn man eine Umlautdomain registriert.

      Es geht hier nicht um Umlautdomains. Deutsche haben kein Problem damit, Umlaute mit als ae, oe, ue zu umschreiben. (Daraus sind die Umlaute ja ursprünglich mal hervorgegangen.)

      Milliarden von Menschen verwenden andere Schriftsysteme als lateinische Buchstaben. Und das sollen sie auch bei ihren E-Mail-Adressen tun können.

      🖖 Stay hard! Stay hungry! Stay alive! Stay home!

      --
      “Turn off CSS. If the page makes no sense, fix your markup.” —fantasai
      1. Milliarden von Menschen verwenden andere Schriftsysteme als lateinische Buchstaben. Und das sollen sie auch bei ihren E-Mail-Adressen tun können.

        Das klingt gut ... allerdings gibt es durchaus auch den Aspekt, dass es doch ein wenig Mist ist, wenn sich die Menschheit über das Internet verbindet und sich sodann via Sprache bzw. Schrift isoliert. Deswegen ist schon ein gewisser Turm nicht fertig geworden und es wurde sogar das Wort "babbeln" erfunden…

        1. Hallo,

          [...] und es wurde sogar das Wort "babbeln" erfunden…

          und zwar in Hessen. 😉

          Live long and pros healthy,
           Martin

          --
          Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
        2. @@Raketenpilot

          Milliarden von Menschen verwenden andere Schriftsysteme als lateinische Buchstaben. Und das sollen sie auch bei ihren E-Mail-Adressen tun können.

          Das klingt gut ... allerdings gibt es durchaus auch den Aspekt, dass es doch ein wenig Mist ist, wenn sich die Menschheit über das Internet verbindet und sich sodann via Sprache bzw. Schrift isoliert.

          Personen, die international unterwegs sind, werden mehrere Mailadressen haben: in ihrer Schrift (bspw. 김슬기@메일.테스트) und in latinischen Buchstaben (seulgi.kim@mail.test).

          🖖 Stay hard! Stay hungry! Stay alive! Stay home!

          --
          “Turn off CSS. If the page makes no sense, fix your markup.” —fantasai
          1. @@Gunnar Bittersmann

            Personen, die international unterwegs sind, werden mehrere Mailadressen haben: in ihrer Schrift (bspw. 김슬기@메일.테스트) und in latinischen Buchstaben (seulgi.kim@mail.test).

            Wobei letzteres auch eine fragwürdige Anpassung an westliche Gegebenheiten ist. Im Koreanischen steht (wie bspw. auch im Chinesischen, Japanischen und AFAIK auch im Ungarischen) der Familienname vor dem Vornamen: Kim Seulgi (김슬기).

            Weshalb auch die Bezeichnung „Familienname“ besser ist als „Nachname“, wenngleich es den Familiennamen auch nicht überall gibt (bspw. in Island). Nur um „Vorname“ kommt man im Deutschen wohl nicht drumrum. ☞ Personennamen aus aller Welt

            🖖 Stay hard! Stay hungry! Stay alive! Stay home!

            --
            “Turn off CSS. If the page makes no sense, fix your markup.” —fantasai
            1. Hi @Gunnar Bittersmann,

              mich würde mal interessieren, welche Zeichen (oder Glyphen oder wie das jetzt richtig heißt) auf allen Tadtaturen der Welt vorhanden sind.

              Ich denke da so an das @, den Punkt, usw.

              Schreiben denn die Chinesen für ihrs TLD auch tatsäclich ".cn", oder was tippen die dafür?

              LG
              me-too

            2. Aloha ;)

              Weshalb auch die Bezeichnung „Familienname“ besser ist als „Nachname“, wenngleich es den Familiennamen auch nicht überall gibt (bspw. in Island). Nur um „Vorname“ kommt man im Deutschen wohl nicht drumrum. ☞ Personennamen aus aller Welt

              Danke dir - mal wieder - für den hilfreichen Link (und die dort verlinkte Übersetzung, die ja auch aus deiner Feder stammt 😉 ).

              Grüße,

              RIDER

              --
              Camping_RIDER a.k.a. Riders Flame a.k.a. Janosch Zoller
              # Twitter # Steam # YouTube # Self-Wiki # Selfcode: sh:) fo:) ch:| rl:) br:^ n4:? ie:% mo:| va:) js:) de:> zu:} fl:( ss:) ls:[
  2. Hallo,

    Hat irgendwer schon mal eine Mailadresse mit Nicht-ASCII-Zeichen gesehen? Oder glaubt jemand, dass die zukünftig auftreten?

    Wikipedia hat, zumindest die englische: EN-WP

    Gruß
    Kalk

    1. Hm. Ganz neuer Aspekt. Die Userparts also auch...

      filter_var( $address, FILTER_VALIDATE_EMAIL );
      

      ist damit „offiziell unbrauchbar“, denn es verhindert u.a. höchst effektiv den Mailversand an den Honigbär mit der Balalaika in der russischen Förderation. ('медведь@с-балалайкой.рф')

      1. filter_var( $address, FILTER_VALIDATE_EMAIL );
        
        

        ist damit „offiziell unbrauchbar“,

        Ist es womöglich doch nicht, wenn man den Userpart und den Domainpart vorher passend behandelt, also den „downgrade“ durchführt.

        list( $user, $domain ) = mb_split( '@', $address );
        $user   = mb_encode_mimeheader( $user );
        $domain = idn_to_ascii( $domain );
        $address = $user . '@' . $domain;
        $address = filter_var( $address, FILTER_VALIDATE_EMAIL );
        

        ergibt für den russischen Honigbär nebst Seelenbeglückungsinstrument 'медведь@с-балалайкой.рф'

        =?UTF-8?B?0LzQtdC00LLQtdC00Yw=?=@xn----8sbaac5cahfb0b0a.xn--p1ai
        

        Ganz genau übrigens:

        =?UTF-8?B?0LzQtdC00LLQtdC00Yw=?= <=?UTF-8?B?0LzQtdC00LLQtdC00Yw=?=@xn----8sbaac5cahfb0b0a.xn--p1ai>
        

        für

        медведь <медведь@с-балалайкой.рф>
        

        Das =?UTF-8?B?0LzQtdC00LLQtdC00Yw=?=@xn----8sbaac5cahfb0b0a.xn--p1ai geht durch schon mal durch den Filter. Fragt sich

        1. ob das „richtig“ und
        2. „sicher“ ist und außerdem
        3. funktioniert...
      2. @@Raketenscripter

        Hm. Ganz neuer Aspekt. Die Userparts also auch...

        filter_var( $address, FILTER_VALIDATE_EMAIL );
        

        ist damit „offiziell unbrauchbar“

        <input type="email"> mir clientseitiger Validierung auch.

        Hier hat sich übrigens seit 2011 was getan. Als ich meinen Vortrag Internationalization (or the lack of it) in current browsers hielt, hatte dieses Formular die Adresse ivan@россия.испытание nicht akzeptiert.

        IDNs gehen mittlerweile, иван@россия.испытание (d.h. local-part mit Nicht-ASCII-Zeichen) geht aber immer noch nicht.

        🖖 Stay hard! Stay hungry! Stay alive! Stay home!

        --
        “Turn off CSS. If the page makes no sense, fix your markup.” —fantasai
        1. (d.h. local-part mit Nicht-ASCII-Zeichen) geht aber immer noch nicht.

          (Sprachvereinbarung: „userpart“ meint im Folgendem den Teil einer Mailadresse vor dem „@“)

          Leider auch nicht nachdem man den userpart der Mailadresse mit mb_encode_mime_header() eigentlich passend kodiert hat.

          Andererseits frage ich mich ohnehin ob das so gesund ist und was die Clients dann damit machen (Wenn jemand die Einrichung unicode-userparts auf dem empfangendem Server (also dem „MX“) zulässt sollte der wohl wissen, was der Server kann). Mögliche Fehler auf Clients könnten vom unschön-harmlosen „undekodiert anzeigen“ über simple Abstürze bis hin zu ausgewachsenen Vulnerabilitäten reichen…

          1. @@Raketenscripter

            (d.h. local-part mit Nicht-ASCII-Zeichen) geht aber immer noch nicht.

            (Sprachvereinbarung: „userpart“ meint im Folgendem den Teil einer Mailadresse vor dem „@“)

            Ich habe die Benennung aus RFC 5322 übernommen.

            Andererseits frage ich mich ohnehin ob das so gesund ist

            Es war schon immer ungesund, den Zeichensatz auf ASCII-Zeichen zu beschränken. Systemischer Rassismus.

            Tweets by Raquel Vélez: “Found on a US government website. Everyone: this is what systemic racism is. It's not overt. It's a systematic principle by which some folks are excluded, forcing them to change who they are in order to fit into a system that never considered them in the first place. (Input field ‘Last name’, user input ‘Vélez’, error message: ‘Please enter valid last name of the certifier.’ – Tech friends: don't let your systems do this. Check your algorithms. It's one thing to stop hackers; it's wholly another to prevent humans from engaging in the systems they need to use in order to participate in society. Dismantling systemic racism is as easy as fixing bugs (sparkling heart emoji)”

            (Quelle: https://twitter.com/rockbot/status/1270400995567169536 f.)

            Mögliche Fehler auf Clients könnten vom unschön-harmlosen „undekodiert anzeigen“ über simple Abstürze bis hin zu ausgewachsenen Vulnerabilitäten reichen…

            Entwickler sollten die Systeme fixen, nicht Bullshit erzählen.

            🖖 Stay hard! Stay hungry! Stay alive! Stay home!

            --
            “Turn off CSS. If the page makes no sense, fix your markup.” —fantasai
            1. Mögliche Fehler auf Clients könnten vom unschön-harmlosen „undekodiert anzeigen“ über simple Abstürze bis hin zu ausgewachsenen Vulnerabilitäten reichen…

              Entwickler sollten die Systeme fixen, nicht Bullshit erzählen.

              Dann fixe doch mal rasch Outlook/MS-Mail oder meinetwegen diverse Webmailer… Ich mach mir halt Sorgen.

  3. Hi fastüx ;-)

    meine Mailclients auf den Endgeräten spielen mit, aber der SMTP-Server lehnt die Emailadresse schon als ungültig ab, noch bevor er überprüft, ob sie überhaupt vorhanden ist.

    Über mein Webtool für den Mailserver kann ich auch keine vituelle Mail-Domain mit Nicht-ASCII-Zeichen anlegen. Und die in ACE-Schreibweise und die mit Umlauten sind für den Mailserver nicht dieselbe.

    Ich habe aber auch beides schon länger nicht updated :-|

    LG
    me-too

    1. aber der SMTP-Server lehnt die Emailadresse schon als ungültig ab, noch bevor er überprüft, ob sie überhaupt vorhanden ist.

      Downgrade vor dem Senden…

      1. aber der SMTP-Server lehnt die Emailadresse schon als ungültig ab, noch bevor er überprüft, ob sie überhaupt vorhanden ist.

        Downgrade vor dem Senden…

        nee, update des Mailservers.
        Bei Postfix kann man dann in der main.cf mit smtputf8_enable = yes den UTF8-Support einschalten und dann funktioniert das ganz normal.

        Blöd nur, dass mein Webinterface für die Virtual-Domain-Verwaltung da nicht mitspielt. Das ist ein Eigenfork von postfixadmin mit MySQL. Den auch zu upgraden, den Stress tu ich mir nicht an.

        Das muss alles zusammen neu und einer muss die Mailkonten dann migrieren :-(

        Zu Fuß auf dem Testsystem gehts aber.

        LG
        me-too