PHP Mailing

  • 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

  • Code
    1. ^[-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

    Code
    1. "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"


    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 :-)

  • 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:

    Code
    1. valid Max."Musterjunge".Mustermann@example.com
    2. invalid "Max Mustermann"@example.com
    3. invalid MaxMuster(Kommentar)@example.com
    4. invalid (Kommentar)MaxMuster@example.com
    5. valid hans@example.com
    6. valid hans@example.eu
    7. valid hans@example.e
    8. valid hans@example.longlonglong
    9. valid h@e.d


    (so prüft) php-5.5.15:


    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

    Code
    1. /^[\w\-\.]+[^@]@[\w\-\.]+[^@]\.[\w\-\.]+[^@]/

    Dieser Beitrag wurde bereits 6 Mal editiert, zuletzt von wolf ()

  • Wen es Interresiert, hab hier mal durchgetestet:
    http://wolf.wolfgang-m.de/beispiele/mailValidateTester.php

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von wolf ()