Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

E-Mail-Adresse mit Umlauten wird vom Validator abgelehnt #109

Open
SteffenLanger opened this issue Dec 12, 2024 · 2 comments
Open

E-Mail-Adresse mit Umlauten wird vom Validator abgelehnt #109

SteffenLanger opened this issue Dec 12, 2024 · 2 comments

Comments

@SteffenLanger
Copy link

Problem

Gültige E-Mail-Adressen mit Umlauten wie info@kfz-sachverständiger-müller.de werden vom Validator abgelehnt.

Verknüpfung zu Schematron

Die zuständige Validation Rule ist BR-DE-28. Die Nachricht lautet:

In BT-43 soll genau ein @-Zeichen enthalten sein, welches nicht von einem Leerzeichen, einem Punkt, aber mindestens zwei Zeichen auf beiden Seiten flankiert werden soll. Ein Punkt sollte nicht am Anfang oder am Ende stehen.

Die Schematron-Regel sieht so aus (Quelle):

<assert test="matches(normalize-space(ram:EmailURIUniversalCommunication/ram:URIID), $XR-EMAIL-REGEX)"
                    flag="warning"
                    id="BR-DE-28">[BR-DE-28] In BT-43 soll genau ein @-Zeichen enthalten sein, welches nicht von einem Leerzeichen, einem Punkt, aber mindestens zwei Zeichen auf beiden Seiten flankiert werden soll. Ein Punkt sollte nicht am Anfang oder am Ende stehen.</assert>

$XR-EMAIL-REGEX wiederum kommt aus der common.sch:

<let name="XR-EMAIL-REGEX"  value="'^[a-zA-Z0-9!#\$%&amp;&quot;*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#\$%&amp;&quot;*+/=?^_`{|}~-]+)*@([a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$'" />

Die Regel schließt aber fälschlicherweise UTF-8-Zeichen aus.

Warum sind Adressen mit Umlauten gültige E-Mail-Adressen?

  • Praxis: Umlaute in E-Mail-Adressen funktionieren in gängigen E-Mail-Clients wie Outlook, Gmail und Apple Mail. Sie funktionieren mit einer Großzahl von E-Mail-Servern.
  • Standard: Laut dem IETF-Standard RFC-6532 (2012, offizieller Standard, weil Status "Proposed Standard" = Umsetzung in der Praxis wird seitens IETF nahegelegt) dürfen auch UTF-8-Zeichen in E-Mail-Adressen stehen.

Änderungsvorschlag

$XR-EMAIL-REGEX um UTF-8-Zeichen erweitern.

@phax
Copy link
Collaborator

phax commented Dec 12, 2024

Danke für Ihren Beitrag.
Damit Domain-Namen mit Umlauten im DNS funktionieren, müssen diese intern in Punycode (RFC 3492) konvertiert werden. Meinem Verständnis nach gilt das dann auch für E-Mail-Adressen.
Dementsprechend würde ich die UTF-8-Zeichen ausschließlich VOR dem @-Zeichen sehen, wie in müller@kfz-sachverständiger-mueller.de - entspricht das Ihrer Interpretation des Standards?

@SteffenLanger
Copy link
Author

Meine Interpretation des Standards wäre, dass eine E-Mail-Adresse Umlaute vor und nach dem @ enthalten dürften. Was in der XRechnung XML landet, muss noch nicht Punycode sein.

Als Referenzimplementierung würde ich Firefox anführen. Die URL ist in der Adresszeile mit Umlauten eingebbar und wird dort auch mit Umlauten angezeigt. Unter der Haube wird anscheinend zu Punycode konvertiert.
Die Konvertierung müsste das verarbeitende System machen, falls eine E-Mail verschickt wird. Dort wäre die DNS-Auflösung wahrscheinlich korrekt aufgehoben, oder?
CleanShot 2025-01-07 at 10 20 11@2x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants