AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

E-Mail Adresse auf Gültigkeit überprüfen

Ein Thema von TigerLilly · begonnen am 17. Aug 2023 · letzter Beitrag vom 18. Aug 2023
Antwort Antwort
Seite 2 von 2     12   
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.176 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 08:42
Dann formuliere ich gern um:

In meinem Code habe ich uralte RegEx-Tests, um eine E-Mail Adresse auf formale Gültigkeit zu prüfen. Ich habe gesucht, aber nicht gefunden, ob die Delphi 11.3 RTL oder StrUtils oder sonst eine Unit von Delphi mittlerweile da auch was haben.

Kann mir wer sagen, ob es da etwas gibt?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 08:44
In Embarcaderos Beispielen unter
https://github.com/Embarcadero/RADStudio11Demos/

gibt es auch:
Delphi-Quellcode:
        lbType.Caption := 'Email for validation';
        MemoRegEx.Lines.Text := '^((?>[a-zA-Z\d!#$%&''*+\-/=?^_`{|}~]+\x20*' +
          '|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\' +
          'x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!' +
          '#$%&''*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])' +
          '[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\' +
          '-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)' +
          '(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\' +
          'd\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|' +
          '\\[\x01-\x7f])+)\])(?(angle)>)$';
Ich meine, großartig. Da weiß man echt auf den ersten Blick was gemeint ist.
Miniaturansicht angehängter Grafiken
regex.jpg  
  Mit Zitat antworten Zitat
shebang
Online

Registriert seit: 7. Feb 2020
101 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 08:45
Die in meinen Augen einzige wirkliche Lösung wäre, direkt beim Mailserver nachzufragen, ob die Adresse existiert.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 09:34
test@äpfel.de
scheitert schonmal
Ebenso matthias@eißing.de

BTW: Exec oder IsMatch von TRegEx?
Gute Frage. Ich habe der künstlichen "Intelligenz" da mal vertraut, dass sie zumindest sowas wie den Aufruf einer RegEx in Delhpi hinbekommt (das sind schließlich gerade mal 7 Zeilen Code!). Eigentlich hätte ich es besser wissen sollen.

OK, ist wieder an der Frage vorbei.

Kurze Antwort: Nein.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 09:55
Die in meinen Augen einzige wirkliche Lösung wäre, direkt beim Mailserver nachzufragen, ob die Adresse existiert.
Das bringt nichts. Je nach Einstellung liefert der auch ein OK zurück, wenn die Adresse nicht existiert. Z.B. wenn ein Sammelpostfach für nicht vorhandene Adressen eingerichtet ist.
Außerdem:
- Kein Internet (oder keine Berechtigung) -> Keine Prüfung möglich
- Adressen, die noch nicht existieren (z.B. bei Neuanlage), lassen sich so auch nicht prüfen
- Server-Ausfall
- temporäre Sperre der Adresse oder des Servers
- Relaying denied
- etc.
Peter
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 10:16
Ich werde wahrscheinlich gleich gesteinigt, aber warum nicht einfach so:
var IsValidMail : Boolean := System.Masks.MatchesMask('test@mailserver.com', '*@*'); Natürlich wird es damit keine 100%-tige Sicherheit geben, aber in den meisten Fällen sollte das doch eigentlich ausreichen statt mit aufwendigen RegEx-Ausdrücken zu arbeiten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#17

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 12:23
Es gibt ja diese netten "vollständigen" RegEx, die gefühlrt über zwei UHD-Monitore bei 10 dot

aber am Ende war alles irgendwie sch**, weil ständig einige Sonderfälle fehlten (asiaten, russen, die "neuen" Umlautdomains usw.)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 16:38
Ich habe eine recht einfache Frage gestellt. Seids bitte so nett und antwortet darauf + oder beschränkt Euch aufs mitlesen.
Die Antwort auf Deine Frage: Mach es wie die großen, lasse EMails validieren indem Du eine Validierungs Mail verschickst, entweder läßt Du damit einen Link öffnen von einer Seite die Du hostest oder per Rückmail oder beides, je nachdem wie Du es brauchst.

Alles was RegEx Dir bieten kann, ist eine filterung aber keine Prüfung auf Gültigkeit.

Bei meiner Variante kommt dann noch hinzu wie streng Du das ganze nimmst, ob TempMail server erlaubt sind etc...
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#19

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 17. Aug 2023, 16:57
Nja, ein einfaches .*[a-z].*@.*[a-z].*[.][a-z]{2,} geht meistens,
ABER auch wenn man erstmal denkt die TLD sind immer zwei oder mehr Buchstaben ...

Tja, das war einmal ... seit es bei uns "Sprechendes" wie .sex .porn .store .bank .author .fishing oder .academy gibt, wollten die Anderen das auch und schon hat man den Salat.
https://tld-list.com/tlds-from-a-z
.москва (.moscow)
.تونس (.tunesia)
.ਭਾਰਤ (.india)
.グーグル (japanisches .google)
.亚马逊 (.amazon auf chinesisch )
.삼성 (.samsung)

TLDs werden doch nicht mit Punicode geschrieben?
Die "Umlaut"-Domains selber sind in Punicode, also "normale" Buchstaben.
Aber Links vom @ wird es dann auch wieder wild.



Was mindestens da sein muß, ist das @ und hinten ein Punkt ... außer für Mails im Intranet, z.B. auf Localhost oder einen Gerätenamen.
.+@.+\..+

Und gegen sowas wie a@b.c hilft dann eh nur, wenn man die Adresse tatsächlich validiert, also versucht mit ihr zu reden.






[add]
Also, auch die TLD werden als Punycode übertragen, also besteht fast die ganze Mailadrresse eigentlich nur aus Buchstaben und Zahlen und . und - und dem @,
aber nun kommt es drauf an, ob du die interne Darstellung speicherst, oder das tatsächlich sichtbare Eingabe, weil da ist fast alles erlaubt.

.ਭਾਰਤ = .xn--s9brj9c
.+@.+[.][-a-z0-9]{2,} aber nur für die interne Darstellung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (17. Aug 2023 um 17:09 Uhr)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.018 Beiträge
 
Delphi 2009 Professional
 
#20

AW: E-Mail Adresse auf Gültigkeit überprüfen

  Alt 18. Aug 2023, 15:43
Ich habe keine vorgefertigte Funktion aus der Delphi-RTL, also strenggenommen keine Antwort auf deine Frage, aber will trotzdem mahnend Postel's Law erwähnen.
Zitat:
“be conservative in what you do, be liberal in what you accept from others”

„sei streng bei dem, was du tust, und offen bei dem, was du von anderen akzeptierst“

RFC 761
Wie oft haben mir schon irgendwelche Oberflächen meine vollkommen gültige Email-Adresse um die Ohren gehauen, sie sei nicht gültig
Wir haben letzten Dienstag versucht, unsere Firewall-Appliance von Sophos zu aktualisieren. Dazu ist eine E-Mail-Adresse für die US-Exportkontrolle nötig. Unsere Domain enthält Ziffern. Laut Sophos können Domains jedoch keine Ziffern enthalten. Somit können wir unsere Firewall leider nicht aktualisieren.
Meine private Domain jn-games.de wurde aber schon etliche Male wegen des Bindestrichs abgelehnt, weshalb ich eine Ersatzdomain ohne Bindestrich habe.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz