Attention ! Il y a un tas de pourriture de connaissances dans ce fil (des choses qui étaient vraies et qui ne le sont plus).
Pour éviter les rejets faussement positifs d'adresses électroniques réelles dans le monde actuel et futur, et depuis n'importe où dans le monde, vous devez connaître au moins le concept de haut niveau suivant RFC 3490 Il s'agit de "Internationalizing Domain Names in Applications (IDNA)". Je sais que les gens des États-Unis et de l'Australie ne sont pas souvent au courant, mais c'est déjà le cas. utilisation répandue et en augmentation rapide dans le monde entier (principalement dans les régions non anglophones).
L'essentiel est que vous pouvez maintenant utiliser des adresses comme mason@.com et wildwezyr@fahrvergnügen.net. Non, ce n'est pas encore compatible avec tout ce qui existe (comme beaucoup l'ont déploré plus haut, même les simples adresses +ident de style qmail sont souvent rejetées à tort). Mais il y a un RFC, il y a une spécification, elle est maintenant soutenue par l'IETF et l'ICANN, et - plus important encore - il y a un nombre important et croissant d'implémentations supportant cette amélioration qui sont actuellement en service.
Je ne savais pas grand-chose de cette évolution jusqu'à ce que je retourne au Japon et que je commence à voir des adresses électroniques comme hei@.ca et des URL Amazon comme celle-ci :
http://www.amazon.co.jp/--/b/ref=topnav_storetab_e?ie=UTF8&node=3210981
Je sais que vous ne voulez pas de liens vers des spécifications, mais si vous vous fiez uniquement aux connaissances dépassées des hackers sur les forums Internet, votre validateur de courrier électronique finira par rejeter des adresses électroniques que les utilisateurs non anglophones s'attendent de plus en plus à voir fonctionner. Pour ces utilisateurs, cette validation sera tout aussi ennuyeuse que le formulaire banal et sans cervelle que nous détestons tous, celui qui ne peut pas gérer un + ou un nom de domaine en trois parties ou autre.
Je ne dis pas que ce n'est pas une corvée, mais la liste complète des caractères "autorisés dans certaines/toutes/aucune condition" est (presque) tous les caractères dans toutes les langues. Si vous voulez "accepter toutes les adresses électroniques valides (et beaucoup d'autres non valides)", vous devez tenir compte des IDN, ce qui rend inutile une approche basée sur les caractères (désolé), à moins que vous ne commenciez par convertir les adresses e-mail internationalisées (mort depuis septembre 2015, anciennement comme ceci -une alternative fonctionnelle est aquí ) à Punycode .
Après avoir fait cela, vous pouvez suivre (la plupart) des conseils ci-dessus.
223 votes
El
+
est autorisé. Ça me rend dingue quand les sites web ne l'autorisent pas parce que mon email a un code d'accès.+
et de nombreux sites ne l'autorisent pas.0 votes
Je viens de commencer un bounty. Il y a déjà de bonnes réponses mais elles n'expliquent pas les caractères autorisés dans la partie serveur de l'adresse e-mail. J'accepterai une réponse complète à mes questions (nom d'utilisateur et partie serveur expliqués).
0 votes
Peut-être aussi RFC2821 et RFC2822 .
12 votes
Question antérieure couvrant le même sujet : stackoverflow.com/questions/760150/ . Le plus triste, c'est que, même si cette question date de près de 8 mois, l'ancienne question a de bien meilleures réponses. Presque toutes les réponses ci-dessous étaient déjà périmées lorsqu'elles ont été postées à l'origine. Voir Entrée Wikipedia (et ne vous inquiétez pas, il est pertinent références officielles ).
1 votes
D'après le site de PHP
fitler_var()
La validation de cet email serait correcte :_.-+~^*'`{GEO}`'*^~+-._@example.com
16 votes
Contrairement à plusieurs réponses, les espaces sont autorisé dans la partie locale des adresses électroniques, s'il est cité.
"hello world"@example.com
est valable.1 votes
Actuellement, lors de la création d'un groupe d'e-mails de Google Dev Console, Google n'autorise pas le +, même si l'adresse e-mail a dû être autorisée lorsque la personne a créé le compte Gmail. ! !!!!
6 votes
@LaraRuffleColes - Pour Gmail, lorsque vous créez un compte de messagerie, il ne vous permet pas de créer des adresses contenant un signe "+". Le signe "+" ("Plus-addressing") permet à toute personne possédant une adresse Gmail d'ajouter un signe "+" suivi d'une "chaîne" à la fin de son nom d'utilisateur afin de créer une adresse électronique "alternative" ("alias") à utiliser pour son compte. Exemple : "example@gmail.com", "exemple+tag@gmail.com". Une utilisation typique (et probablement "principale") de cette fonction consiste à créer des adresses électroniques alias pour votre compte, ce qui vous permet de marquer et de filtrer les messages électroniques entrants, en théorie par expéditeur.
4 votes
Vous pensez que le "+" vous rend fou ? Mon nom de famille contient une apostrophe. Vous savez combien de sites web je peux encore planter en entrant mon nom de famille ? Beaucoup trop, mais à propos, j'ai abandonné l'adresse e-mail Patrick.o'hara parce que presque personne ne l'autorise, même si elle est valide.
3 votes
@DanHerbert Peut-être qu'ils ne veulent pas que les gens facilement abuser du système en utilisant une seule adresse électronique réelle pour créer plusieurs comptes.
6 votes
Andrew L'inverse est beaucoup plus courant. Si l'on ne peut pas faire confiance à un site pour autoriser des adresses électroniques correctes, je ne lui fais pas confiance pour gérer mes informations personnelles.
0 votes
@DanHerbert parce que les sites web ne veulent pas de deux utilisateurs différents avec la même adresse électronique. Imaginez qu'ils offrent des réductions pour les premiers acheteurs et qu'à chaque fois que vous faites des achats, vous puissiez prétendre être un nouveau client simplement en ajoutant un charabia de + après votre email. Le voudriez-vous ?
0 votes
@HassanAzimi Essayer de prévenir les abus en bloquant les formats d'adresses électroniques valides n'est pas une bonne stratégie et n'arrêterait qu'un nombre incroyablement faible de mauvais acteurs qui peuvent contourner cette limitation assez facilement. De plus, ce n'est pas une règle universelle que tous les fournisseurs de courrier électronique ignorent tout ce qui se trouve après un numéro de série.
+
À l'époque de mon commentaire initial, il s'agissait d'un système qui ne fonctionnait de cette manière qu'avec Gmail. De nombreux grands fournisseurs se comportent désormais de la sorte, mais ce n'est toujours pas un moyen efficace de mettre fin aux mauvais comportements et cela va gêner davantage les utilisateurs honnêtes que les malhonnêtes.0 votes
@DanHerbert J'ai essayé MSN, AOL, YAHOO et aucun d'entre eux ne vous permet d'ajouter un plus n'importe où dans votre email lors de la création d'un nouvel email donc oui ce n'est pas une adresse email valide.
0 votes
@DanHerbert Une autre de mes bêtes noires est celle des sites qui n'autorisent pas l'utilisation d'un seul caractère local dans l'e-mail. Par exemple, a@gmail.com est tout à fait valable mais de nombreux sites ne l'autorisent pas, y compris certains sites de compagnies aériennes.