Bonjour,
Tout d'abord, voici ce que j'ai trouvé sur le forum (ça date un peu mais j'ai le même problème pratiquement au mot près) :
https://www.developpez.net/forums/d561587/general-developpement/algorithme-mathematiques/general-algorithmique/validite-d-mail/
Ma question est simple : quel est le meilleur moyen (pythonnique) pour parser un champ to (ou cc, cci) qui contient plusieurs adresse email valides au sens de la RFC 3696 ?
Rappel de la RFC en question :
https://tools.ietf.org/html/rfc3696
La question est moins simple qu'il n'y paraît : des adresses peuvent être valident malgré leur peu d'usage "courant" sur le web... Exemples :
- Abc\@def@example.com
- Fred\ Bloggs@example.com
- Joe.\\Blow@example.com
- "Abc@def"@example.com
- "Fred Bloggs"@example.com
- (etc)
... Tous ses exemples sont bel et bien valides ! Avant qu'on me dise qu'une regEx est adaptée d'accord, mais je veux bien la comprendre avant de l'utiliser... celle proposée dans le post cité plus haut (cf utilisée par la RFC 5322) est imbitique voire limitée vis-à-vis de ce qui est possible :
http://www.regular-expressions.info/email.html
Et c'est fastidieux parce que les courriels sont séparés par des virgules dans les headers d'email avec, parfois !, des "<>" pour séparer du nom d'usage "humain". Résultat je patine gentillement dans la semoule à trouver un truc vraiment efficace et si possible, facile à maintenir. Si une bonne âme de la regex voulait bien m'éclairer (ou me propose une toute autre solution ?), ça m'avancerait beaucoup.
Pour l'instant, je pensais à la validation, caractère par caractère, pour tenter de déterminer des groupes d'adresses, avant de les valider unitairement. Certes moins efficace mais pas nécessairement moins sûr. Qu'en pensez-vous ?
Pour le contexte : une sorte d'IFTTT du SMTP où l'on peut envoyer des commandes vraiment pointues pour récupérer des ressources par courriel -> j'utilise toutes les possibilités offertes par les RFC.
Bon après-midi à tous,
Julien.
Partager