Hallou,
1. wollte ich fragen ob von euch jemand irgendwo ne regexe zur Prüfung von Mailadressen rumfliegen hat, und mir diese bereitstellen möchte
2. Welche Erfahrung habt ihr mit vorgefertigten mailing Klassen?
Grüße, Wolf
Hallou,
1. wollte ich fragen ob von euch jemand irgendwo ne regexe zur Prüfung von Mailadressen rumfliegen hat, und mir diese bereitstellen möchte
2. Welche Erfahrung habt ihr mit vorgefertigten mailing Klassen?
Grüße, Wolf
^[-a-z0-9~!$%^&*_=+}{\\'?]+(\\.[-a-z0-9~!$%^&*_=+}{\\'?]+)*@([a-z0-9_][-a-z0-9_]*(\\.[-a-z0-9_]+)*\\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(:[0-9]{1,5})?$
Ich benutze den hier, der sollte so ziemlich alle geläufigen E-Mail-Adressen abdecken (ohne diese ganzen Spezialformate). Ist escaped für JSON/Javascript, musst du also ggf. umschreiben.
hi
zu 1)
hier hab ich n ausdruck, den ich selbst nutze, aber alles abzufangen funktioniert damit nich
http://stackoverflow.com/quest…validate-an-email-address
guck dir das mal an, dort gibts noch n paar klasse hinweise zum arbeiten mit regulären ausdrücken bei emails
und zu 2)
ich persönlich bin Fan von Zend/Mail und nutze es auch. sehr komfortabel eingerichtet.
aber hier gibts auch einige klassen, die du nutzen kannst (z.B. PEAR)
wenns allerdings schnell gehen soll, reicht die mail()-Funktion für Kleinigkeiten aus
Nein die fehlen nicht: [...] mobi|[a-z][a-z]) [...], damit werden die zweistelligen abgedeckt.
Hab zwar auch noch nicht gewusst, dass PHP mit FILTER_VALIDATE_EMAIL nicht die "perfekte" Lösung darstellt,
aber was spricht dagegen?
Wenn Du clientseitig (JS) prüfen willst, musst Du wohl selbst was "basteln".
Per PHP aber sollte FILTER_VALIDATE_EMAIL doch reichen.
Wenn man es aufs Böseste genau machen will, dann wird man ja verrückt.
Da gehts schon bei der Gesamtlänge der Emailaddresse los. Laut Wiki 254 Oktetten
Zitat
(ein Oktett ist auf den meisten Computern identisch mit einem Byte)
...
Eine längere Adresse kann über RFC-konforme SMTP-Server weder E-Mails versenden noch empfangen
Bis hin zu Groß-/Kleinschreibung:
Zitat
Da jedoch die daraus entstehende Verwirrung und die Probleme zu groß sind, gibt es kaum einen Provider, der tatsächlich zwischen hans@example.com und Hans@example.com unterscheidet.
http://de.wikipedia.org/wiki/E-Mail-Adresse
PHPs FILTER_VALIDATE_EMAIL:
valid Max."Musterjunge".Mustermann@example.com
invalid "Max Mustermann"@example.com
invalid MaxMuster(Kommentar)@example.com
invalid (Kommentar)MaxMuster@example.com
valid hans@example.com
valid hans@example.eu
valid hans@example.e
valid hans@example.longlonglong
valid h@e.d
(so prüft) php-5.5.15:
void php_filter_validate_email(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
{
/*
* The regex below is based on a regex by Michael Rushton.
* However, it is not identical. I changed it to only consider routeable
* addresses as valid. Michael's regex considers a@b a valid address
* which conflicts with section 2.3.5 of RFC 5321 which states that:
*
* Only resolvable, fully-qualified domain names (FQDNs) are permitted
* when domain names are used in SMTP. In other words, names that can
* be resolved to MX RRs or address (i.e., A or AAAA) RRs (as discussed
* in Section 5) are permitted, as are CNAME RRs whose targets can be
* resolved, in turn, to MX or address RRs. Local nicknames or
* unqualified names MUST NOT be used.
*
* This regex does not handle comments and folding whitespace. While
* this is technically valid in an email address, these parts aren't
* actually part of the address itself.
*
* Michael's regex carries this copyright:
*
* Copyright © Michael Rushton 2009-10
* http://squiloople.com/
* Feel free to use and redistribute this code. But please keep this copyright notice.
*
*/
const char regexp[] = "/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD";
...
Alles anzeigen
mehr: http://squiloople.com/2009/12/…ddress-validation/#more-1
Via JS könnte man auch per Ajax ein PHP-Script auf dem Server aufrufen, das dann das Ergebnis von FILTER_VALIDATE_EMAIL returnt.
Zu 2.:
mail() reicht, solange man nichts komisches vorhat.
Aber es gibt Probleme (unabhängig von mail()), wenn Du von per PHP-Script eMails von Dyn-IPs versendest. Die eMails werden dann von Providern oft direkt in die Tonne getreten (weil als Spam angesehen).
@basiii ja sowas hatte ich mir gedacht aber wie gesagt habe nur überflogen ..
@cotton, ja würde über Ajax gehen, btw dann könnte ich auch gleich das ganze Form validieren und verarbeiten lassen, der unterschied zum neu laden wäre durch den erzeugten Overhead wahrscheinlich nicht spürbar
Aber danke für den Rest Code
meine regexe fürs erste
Wen es Interresiert, hab hier mal durchgetestet:
http://wolf.wolfgang-m.de/beispiele/mailValidateTester.php
wolf
/^[\w\-\.]+[^@]@[\w\-\.]+[^@]\.[\w\-\.]+[^@]/
invalid Max."Musterjunge".Mustermann@example.com
invalid "Max Mustermann"@example.com
invalid MaxMuster(Kommentar)@example.com
invalid (Kommentar)MaxMuster@example.com
valid hans@example.com
valid hans@example.eu
invalid hans@example.e
valid hans@example.longlonglong
invalid h@e.d
invalid h@e.de
invalid 462$%/?@.4§.de
lauras
/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/
invalid Max."Musterjunge".Mustermann@example.com
invalid "Max Mustermann"@example.com
invalid MaxMuster(Kommentar)@example.com
invalid (Kommentar)MaxMuster@example.com
valid hans@example.com
valid hans@example.eu
invalid hans@example.e
invalid hans@example.longlonglong
invalid h@e.d
valid h@e.de
invalid 462$%/?@.4§.de
http://squiloople.com/2009/12/20/email-address-validation/#more-1
/^(?!(?>"?(?>\\[ -~]|[^"])"?){255,})(?!"?(?>\\[ -~]|[^"]){65,}"?@)(?>([!#-'*+\/-9=?^-~-]+)(?>\.(?1))*|"(?>[ !#-\[\]-~]|\\[ -~])*")@(?!.*[^.]{64,})(?>([a-z\d](?>[a-z\d-]*[a-z\d])?)(?>\.(?2)){0,126}|\[(?:(?>IPv6:(?>([a-f\d]{1,4})(?>:(?3)){7}|(?!(?:.*[a-f\d][:\]]){8,})((?3)(?>:(?3)){0,6})?::(?4)?))|(?>(?>IPv6:(?>(?3)(?>:(?3)){5}:|(?!(?:.*[a-f\d]:){6,})(?5)?::(?>((?3)(?>:(?3)){0,4}):)?))?(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)(?>\.(?6)){3}))\])$/iD
invalid Max."Musterjunge".Mustermann@example.com
valid "Max Mustermann"@example.com
invalid MaxMuster(Kommentar)@example.com
invalid (Kommentar)MaxMuster@example.com
valid hans@example.com
valid hans@example.eu
valid hans@example.e
valid hans@example.longlonglong
valid h@e.d
valid h@e.de
invalid 462$%/?@.4§.de
Mercuritor
/^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+/
invalid Max."Musterjunge".Mustermann@example.com
invalid "Max Mustermann"@example.com
invalid MaxMuster(Kommentar)@example.com
invalid (Kommentar)MaxMuster@example.com
valid hans@example.com
valid hans@example.eu
valid hans@example.e
valid hans@example.longlonglong
valid h@e.d
valid h@e.de
invalid 462$%/?@.4§.de
PHP.net
FILTER_VALIDATE_EMAIL
valid Max."Musterjunge".Mustermann@example.com
invalid "Max Mustermann"@example.com
invalid MaxMuster(Kommentar)@example.com
invalid (Kommentar)MaxMuster@example.com
valid hans@example.com
valid hans@example.eu
valid hans@example.e
valid hans@example.longlonglong
valid h@e.d
valid h@e.de
invalid 462$%/?@.4§.de
Alles anzeigen
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.