Plus que RFC 822 ou RFC 2822 ?

WRInaute accro
Bonjour

J'ai une fonction de validation des adresses email du type : "From" ouTo" etc dans un mail envoyé ( type MIME évidemment ), dans mon soft pratiquement au point, mais cette fonction ne permet pas les caractères accentués dans le nom ( $from_regex ), alors que des noms ( pas des adresses emails ), pourraient en contenir.

Quelle RFC mettre en oeuvre pour celà ?

Merci beaucoup pour votre aide.


PHP:
<?php
    function validate_email($email)
    {
        $email_matches = array();
        $from_regex   = '[a-zA-Z0-9_,\s\-\.\+\^!#\$%&*+\/\=\?\`\|\{\}~\']+';
        $user_regex   = '[a-zA-Z0-9_\-\.\+\^!#\$%&*+\/\=\?\`\|\{\}~\']+';
        $domain_regex = '(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.?)+';
        $ipv4_regex   = '[0-9]{1,3}(\.[0-9]{1,3}){3}';
        $ipv6_regex   = '[0-9a-fA-F]{1,4}(\:[0-9a-fA-F]{1,4}){7}';
        preg_match("/^$from_regex\s\<(($user_regex)@($domain_regex|(\[($ipv4_regex|$ipv6_regex)\])))\>$/", $email, $matches_2822);
        preg_match("/^($user_regex)@($domain_regex|(\[($ipv4_regex|$ipv6_regex)\]))$/", $email, $matches_normal);
        // Check for valid email as per RFC 2822 spec.
        if (empty($matches_normal) && !empty($matches_2822) && !empty($matches_2822[3])) {
            $email_matches['from_name'] = $matches_2822[0];
            $email_matches['full_email'] = $matches_2822[1];
            $email_matches['email_name'] = $matches_2822[2];
            $email_matches['domain'] = $matches_2822[3];
        }
        // Check for valid email as per RFC 822 spec.
        if (empty($matches_2822) && !empty($matches_normal) && !empty($matches_normal[2])) {
            $email_matches['from_name'] = '';
            $email_matches['full_email'] = $matches_normal[0];
            $email_matches['email_name'] = $matches_normal[1];
            $email_matches['domain'] = $matches_normal[2];
        }
        return $email_matches;
    }
?>
 
WRInaute impliqué
Tu as combien de contacts dont l'adresse email a un nom de domaine contenant un caractère accentué ?
Oh, surprise : zéro.

Épargne-nous tes messages pseudo-techniques sur des points de détails (car celui-ci n'est qu'un parmi de nombreux autres du même genre), ça fait vraiment noob qui veut se la jouer.
 
WRInaute accro
Monsieur

Le "$from_regex" n'est pas du tout le nom de domaine. C'est le prénom/nom avant l'email.

La RFC 2822 permet un format du type : "Prénom Nom <adresse_email>"

Le problème porte à la fois sur la RFC et la fonction.

Si rien n'est prévu pour les accents, comment j'envoie à quelque chose comme :
"Jean François Ortolo <mon _email@etc.fr>" ( avec cédille sous le c ) ?

Les prénoms/noms accentués çà n'existe pas ?

Merci beacoup de vos réponses.

Amicalement.
 
WRInaute accro
Bonjour ABCWEB

Mon software ( petit équivalent de SwiftMailer ), est terminé ( phase alpha / mise au point pratiquement complète ), mais je bute sur la fonction de validation, théoriquement compliante RFC 2822 ou RFC 822 ( avec ou sans prénom/nom avant l'email ).

la RFC 2822 met tout en ASCII. Je comprend celà pour les emails, mais pas pour les prénoms /noms ?

Bien amicalement.
 
Haut