Přejdeme rovnou ke krátké odpovědi a o zdlouhavé vysvětlování se postaráme později.
Jednoduše řečeno – ne.
Už slyším, jak vývojáři a ďáblovi advokáti zpochybňují naše tupé odmítání regexové validace e-mailů, což vyvolává další otázku, proč vůbec existuje.
Nebudeme popírat, že to může být užitečný nástroj, a rozhodně je to chytrá věcička, která uživatelům zabrání přidat do formuláře nebo jiného spustitelného média jakýkoli starý text. Kdysi měl e-mailový regex svou roli v tom, jak shromažďujeme údaje o e-mailech.
Ale teď? V souladu se současnými technologiemi a standardy?
Říkáme, že už má své dny za sebou.
Pokud chcete zajistit, že budete dostávat čisté e-mailové adresy, které nebudou narušovat váš e-mailový marketing, míru odmítnutí, skóre doručitelnosti a všechny věci, o kterých víte, že potřebujete, aby vaše metriky byly vysoké a konverze se zvyšovaly, pak regex není správná cesta.
Co je to regex pro ověřování e-mailů?
Regex je zkratka pro regulární výraz; je to termín používaný v různých kódovacích jazycích. Regex neboli regulární výrazy označují kódované textové řetězce určené k porovnávání vzorů nalezených v jiných řetězcích.
Mohou být docela užitečné, když uživatel potřebuje porovnat řetězec znaků s určitým typem vzoru, aby si ověřil, zda jsou zadané informace správné. Vezměme v úvahu telefonní čísla, PSČ, data a ano, to hlavní, co nás zajímá – e-mailové adresy.
Pomocí jednoduchého vzoru lze přiřadit přesný řetězec k sadě pravidel. Když se jednoduché vzory stanou složitějšími, regex se stane méně efektivním a je pravděpodobnější, že bude poskytovat špatné výsledky.
Zatím to zní dobře – jaký je tedy problém s ověřováním e-mailů pomocí regexu?
I když je regex šikovný nástroj, nepokrývá všechny potřebné kontroly. Podívejte se na tyto:
[email protected]
[email protected]
[email protected]
[email protected]
Řekněme, že si všimnete některého z výše uvedených přírůstků do svého e-mailového seznamu; okamžitě byste je označili (nebo byste měli!). Nevěřili byste, že některý z nich jsou platné příspěvky skutečných lidí, kteří projevují zájem o váš produkt a službu.
Regexová validace e-mailu by však byla. Všechny by prošly.
Proč? Protože tyto zjevně falešné adresy stále odpovídají vzorcům, které mají potvrzovat její pravidla.
Teď už to nevypadá tak chytře, že?
Je příliš omezující
Přestože nám předchozí příklady připadají tak očividně falešné, některé formáty e-mailů obsahují mnohem více speciálních znaků, než jsme zvyklí vídat.
V nejjednodušší podobě má e-mailová adresa následující formát:
uživatelské jméno@doména
E-mailové adresy se skládají ze tří částí:
- Místní část – obvykle uživatelské jméno nebo pracovní role.
- Znak @
- Doména včetně platné domény nejvyšší úrovně (TLD)
Pokud by kód hledal pouze toto, pak by typická javascriptová kontrola regexem zabránila tomu, aby se v našich seznamech objevilo mnoho špatných kontaktů.
Naše e-mailové adresy mohou obvykle obsahovat následující znaky:
- Číslice: 0 až 9
- Malá a velká písmena: a až z a A až Z
- Znak tečky [.]: Ne jako první nebo poslední znak, nebo použitý za sebou.
Pokud by se někdo přihlásil do vašeho e-mailového seznamu s některým z těchto speciálních znaků nebo s řadou z nich, většina z nás by se ptala, zda není něco v nepořádku, a mýlili bychom se – všechny jsou podle současné konvence povoleny.
Regex nekontroluje nic jiného než syntaxi.
Vývojáři se možná zajímají pouze o to, jak získat platné adresy prostřednictvím formuláře, ale my se o to nezajímáme. My potřebujeme vědět:
- Existuje doména?
- Existuje záznam MX, který dokazuje, že doména má poštovní server?
- Má e-mailová adresa funkční e-mailový účet?
Každá z těchto otázek, která je hodnocena „ne“, dostane od nás jako od obchodníků tvrdé „ne“. Regex nic z toho nekontroluje – pouze specializovaný nástroj pro validaci e-mailů takové červené vlajky odhalí.
Nezaznamenává dočasné a jednorázové adresy.
Jako obchodníci s e-maily si také uvědomujeme, že spousta uživatelů si zakládá falešné dočasné účty, aby využili nabídky, propagační akce nebo jiné situace. Je to snadný způsob, jak se vyhnout znepřehlednění svých stávajících e-mailových účtů nebo prozrazení jakýchkoli informací o sobě, které nechtějí.
Dočasnou nebo jednorázovou e-mailovou adresu lze snadno nastavit jako jednorázové řešení. Tyto adresy často zmizí do 10 nebo 15 minut od zřízení, takže jsou neuvěřitelně vhodné pro daný účel.
Regex je nekontroluje. Dočasné a jednorázové e-mailové adresy projdou všemi validačními testy regexu.
Jak byste nastavili e-mailový regex javascript?
Pokud jste vývojáři, kteří se v této oblasti vyznají, pravděpodobně nebudete potřebovat naše základní znalosti, abychom vám řekli, jak na to, ale pro ty z vás, kteří mají s kódováním nějaké zkušenosti, by to mělo vypadat nějak takto:
funkce ValidateEmail(inputText)
{
var mailformat = [a-z0-9!#$%&’*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&’*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
if(inputText.value.match(mailformat))
{
alert(„Toto není platná e-mailová adresa“);
return false;
}
}
Částí, která vykonává veškerou těžkou práci, je. var mailformat linka. Provedení a znaky v tomto dlouhém řádku kódu určují, co je povoleno a co ne.
Dokážete si všimnout jednoduchých věcí: A , A , a poté speciální znaky v první, místní části. Stránka +@ pak určuje místní a doménový oddělovač. Za znakem @ pak následuje další řada pokynů, co je přípustné pro doménovou část.
Pokud chcete získat mnohem hlubší informace o tom, co je potřeba k implementaci validátoru regexů, přejděte na stránku abstract. Mají opravdu dobrý návod, co přesně je potřeba, a jsou odborníky, pokud jde o nejrůznější doplňky a začlenění API.
Pokud stojí za to dělat nějakou práci, stojí za to ji dělat dobře, proto ověřte své seznamy tím nejlepším možným způsobem.
Existuje pouze jeden způsob, jak se ujistit, že jsou vaše e-mailové seznamy v prvotřídním stavu, a to je použití specializovaného nástroje pro ověřování e-mailů, jako je např. Vyhazovač .
Ověřování regexem může být zodpovědné za to, že se do vašich e-mailových seznamů dostanou falešné e-mailové adresy, stejně jako za blokování těch platných. Pokud jde o přidání metody ověřování do vašich online formulářů nebo metod sběru dat, doporučili bychom jiné, robustnější formy ověřování.
Nakonec je provozování e-mailových seznamů prostřednictvím platformy, jako je Bouncer, zdaleka nejlepším způsobem, jak udržet seznamy čisté a zdravé, snížit míru odmítnutí, zvýšit doručitelnost a udržet skóre odesílatele ve špičkové formě.
Často kladené otázky týkající se regexu e-mailových zpráv
Jaký je jednoduchý regex pro ověření e-mailu?
Jednoduchý regex (regulární výraz) pro ověřování e-mailů je posloupnost znaků, která definuje vzor pro vyhledávání e-mailových adres. Lze jej použít ke kontrole, zda řetězec odpovídá standardnímu formátu e-mailové adresy. Je však důležité si uvědomit, že jednoduchý regex nemusí zachytit všechny neplatné e-mailové adresy a může propustit některé nestandardní formáty e-mailových adres.
Jak pomáhá e-mailový regex při filtrování neplatných e-mailových adres?
E-mailový regex se používá k porovnání vstupního řetězce (e-mailové adresy zadané uživatelem) s určitým formátem. Pokud e-mailová adresa tomuto formátu neodpovídá, je považována za neplatnou. To může pomoci zabránit překlepům, zajistit konzistenci dat a chránit před některými typy útoků typu injection.
Co je to bílý znak v kontextu e-mailového regexu?
Znak bílé mezery v e-mailovém regexu označuje jakýkoli znak, který se používá k reprezentaci prázdných míst, jako jsou mezery, tabulátory nebo zalomení řádků. V kontextu e-mailových adres nejsou bílé znaky obvykle povoleny a jejich přítomnost by způsobila neplatnost e-mailové adresy.
Co je to složený e-mailový regex?
Složitý e-mailový regex je podrobnější a přesnější regulární výraz používaný pro ověřování e-mailů. Může zohledňovat různé aspekty e-mailových adres, například názvy domén, nelatinkové znaky a specifická pravidla pro výskyt určitých znaků. Poskytuje sice důkladnější ověření, ale může být také náročnější na implementaci a údržbu.
Jak si e-mailový regex poradí s nelatinskými znaky a Unicode?
Zpracování jiných než latinských znaků a Unicode v e-mailových regexech může být složité. Některé e-mailové systémy umožňují používat Unicode nebo jiné než latinské e-mailové adresy, ale nejsou podporovány univerzálně. Složitý e-mailový regex může zahrnovat třídy znaků pro porovnání nelatinkových znaků, ale je nezbytné porozumět konkrétním požadavkům a omezením e-mailového systému, se kterým pracujete.
Jakou roli hrají třídy znaků v e-mailovém regexu?
Třídy znaků v e-mailovém regexu definují sadu znaků, které mohou odpovídat libovolnému jednotlivému znaku ve vstupním řetězci. Například třída znaků [a-z] odpovídá jakémukoli malému anglickému písmenu. Třídy znaků lze použít k určení platných znaků pro různé části e-mailové adresy.
Jaká jsou omezení regexu pro ověřování e-mailů?
Ačkoli regex e-mailu dokáže zachytit mnoho běžných chyb v e-mailových adresách, není to úplná metoda validace. Některé neplatné adresy mohou přesto projít kontrolou regexu a některé platné adresy mohou selhat, zejména pokud používají méně obvyklé formáty nebo znaky. Pro důkladné ověření e-mailu se často doporučuje použít služby pro ověření e-mailu nebo odeslat potvrzovací e-mail na zadanou adresu.