NerdkramsProjekte
In eige­ner Sache: Mailadressen weni­ger wütend vali­die­ren mit libvldmail.

Immer nur auf Webstandards her­um­zu­hacken ist auf Dauer etwas ein­tö­nig. Darum hacke ich heu­te ein­mal auf einer ande­ren Gruppe von Standards her­um: Mailadressen.

E-Mail-Adressen - das haben sie „Messengern“ und der­glei­chen vor­aus - sind bekannt­lich oft lang­le­big, so man­cher Mensch im Bekanntenkreis könn­te eine E-Mail-Adresse haben, deren Alter zwei Jahrzehnte bereits erreicht hat. Viele der heu­ti­gen Digitalisierten waren damals noch gar nicht geboren.

Zugrunde lie­gen, jeweils auf­ge­teilt in ver­schie­de­ne RFC-Dokumente, zwei ver­schie­de­ne Standards (einer für den Teil vor dem @, den so genann­ten „local part“, und einer für den Teil nach dem @, den so genann­ten „domain part“), wobei mit dem Aufkommen von Unicodedomains bei­de Standards eine Erweiterung beka­men, die die Nutzung von UTF-8-Zeichen in bei­den Hälften optio­nal erlau­ben, so lan­ge das „@“ bestehen bleibt. Einige der defi­nie­ren­den RFC-Dokumente die­nen nur dem Zweck, die ande­ren RFC-Dokumente zu erklä­ren: RFC 3696 etwa gibt einen gro­ben Überblick über die Validierung von URL- und URI-Formaten, sozu­sa­gen „für Dummies“. Das sowie­so schon unüber­sicht­li­che Regelwerk kennt wie­der­um so vie­le Ausnahmen, dass sogar in der eng­lisch­spra­chi­gen Wikipedia bei­spiel­haft Mailadressen als „ungül­tig“ ste­hen, von denen aller­dings anschei­nend nie­mand - die RFCs ein­ge­schlos­sen - weiß, warum.

Hinzu kommt, dass zwi­schen Standard und geleb­ter Praxis wie auch im Web ein grö­ßer wer­den­der Graben auf­ge­tan wur­de, oft inner­halb des­sel­ben Dienstes; so unter­stützt etwa die Weboberfläche von Google Mail das Anlegen von Mailadressen mit Sonderzeichen dar­in nicht, der dazu gehö­ren­de Mailserver aller­dings - tech­nisch gese­hen - durch­aus. Eine Validierung nach dem Kriterium, wel­che Mailadressen der eige­ne Anbieter für „gül­tig“ hält, ist aller­dings ohne direk­ten Zugriff auf die­se Mailserver nicht ohne wei­te­res möglich.

Als wären die Standards nicht auch ohne sol­che Sperenzchen merk­wür­dig genug. Es gilt zum Beispiel die Regel, dass sehr wohl bestimm­te Zeichen oder Zeichenfolgen nach­träg­lich als „ungül­tig“ (depre­ca­ted) gekenn­zeich­net wer­den kön­nen, was aber natür­lich nicht heißt, dass man sei­ne alten Mailadressen nicht mehr wei­ter­be­nut­zen darf. Ein Beispiel: Ich hät­te mir vor lan­ger Zeit die Mailadresse musik.ist.„supi“@provider.tld anle­gen kön­nen. Da gemäß RFC 5322 von einer Kombination aus Text inner­halb und außer­halb von Anführungszeichen im „local part“ aber inzwi­schen abge­ra­ten wird, dürf­te ich sie bei einem Anbieter, der sich strikt an den Standard hält, nicht mehr anle­gen - nur nut­zen dürf­te ich sie noch, denn damit eine Mailadresse exi­stie­ren kann, muss sie erst ein­mal gül­tig sein und soll­te damit eben auch über­all akzep­tiert wer­den. Schrödingers Mailadresse.

Wie man erken­nen kann, ist die regel­kon­for­me Validierung eine sehr anstren­gen­de Arbeit. Eine Abdeckung der Standards mit einem regu­lä­ren Ausdruck, wie es im Web gemein­hin emp­foh­len wird, wäre ver­mut­lich mach­bar, aber kaum mehr ver­nünf­tig les­bar. Selbstverständlich könn­te sich die Menschheit auch dar­auf eini­gen, dass in E-Mail-Adressen nur ein klei­ner Teil des ASCII-Zeichensatzes erlaubt sein darf, oder eine E-Mail-Adresse vali­de ist, sobald genau ein ein­zi­ges „@“ dar­in vor­kommt, aber der Sinn hin­ter Standards ist es ja, dass die Menschheit nicht beson­ders gut dar­in ist, sich ohne auf­ge­schrie­be­ne Regeln auf irgend­et­was zu einigen.

Um selbst künf­tig ein wenig weni­ger genervt von die­sem Wildwuchs zu sein, habe ich libvld­mail pro­gram­miert. Hierbei han­delt es sich um eine por­ta­ble Bibliothek ohne beson­de­re Abhängigkeiten mit einem kom­pak­ten API, deren ein­zi­ger Zweck es ist, E-Mail-Adressen stan­dard­kon­form als „ist vali­de“ oder „ist nicht vali­de“ zu kenn­zeich­nen. Die Bibliothek ist ver­mut­lich noch nicht ganz fer­tig, aber durch­aus schon funk­ti­ons­fä­hig. Der Quellcode liegt bis auf Weiteres auf GitHub her­um, je nach Erfolg oder Misserfolg schlie­ße ich aber einen Wechsel zu einer ande­ren Plattform nicht aus. GitHub ist mir zutiefst unsym­pa­thisch.

Senfecke:

Comments are closed.

:) 
:D 
:( 
:o 
8O 
:? 
8) 
:lol: 
:x 
:aufsmaul: 
mehr...
 

Erlaubte Tags:
<strong> <em> <pre> <code> <a href="" title=""> <img src="" title="" alt=""> <blockquote> <q> <b> <i> <del> <span style=""> <strike>

Datenschutzhinweis: Ihre IP-Adresse wird nicht gespeichert. Details finden Sie hier.