Ми перейдемо одразу до короткої відповіді, а про розлогі пояснення подбаємо після.
Дуже просто – ні.
Я чую, як розробники та адвокати диявола ставлять під сумнів нашу відверту відмову від перевірки електронної пошти regex, що викликає подальше питання, навіщо вона взагалі існує.
Що ж, ми не збираємося заперечувати, що це може бути корисним інструментом, і це, безумовно, розумний невеликий набір, який запобігає додаванню користувачами будь-якого старого тексту в форму або інший виконуваний носій. У якийсь момент регекс електронної пошти зіграв свою роль в тому, як ми збираємо дані електронної пошти.
А зараз? Відповідно до сучасних технологій і стандартів?
Ми говоримо, що це вже пройшло.
Якщо ви хочете переконатися, що отримуєте чисті адреси електронної пошти, які не вплинуть на ваш email-маркетинг, показники відмов, показники доставки та всі речі, які, як ви знаєте, вам потрібні для підтримки високих показників та збільшення конверсій, тоді regex – це не вихід.
Що таке regex для перевірки електронної пошти?
Регекс – це скорочення від регулярного виразу; це термін, який використовується в різних мовах кодування. Регекс, або регулярні вирази, відносяться до закодованих текстових рядків, призначених для зіставлення шаблонів, знайдених в інших рядках.
Вони можуть бути досить зручними, коли користувачеві потрібно зіставити рядок символів з певним типом шаблону, щоб перевірити правильність наданої інформації. Розглянемо номери телефонів, поштові індекси, дати, і так, головне, що нас цікавить – адреси електронної пошти.
За допомогою простого шаблону можна зіставити точний рядок з набором правил. Коли прості шаблони ускладнюються, regex стає менш ефективним і з більшою ймовірністю дає погані результати.
Поки що це звучить добре, але в чому проблема з перевіркою regex-адрес?
Яким би чудовим інструментом не був regex, він не покриває всіх перевірок, які вам потрібні. Погляньте на них:
[email protected]
[email protected]
[email protected]
[email protected]
Припустимо, що ви помітили, що хтось із перерахованих вище осіб додається до вашого списку електронної пошти; ви б одразу ж позначили їх (або повинні були б!). Ви не повірите, що це дійсні записи від реальних людей, які виявляють зацікавленість у ваших продуктах та послугах.
Однак перевірка електронної пошти Regex могла б. Це дозволило б їм усім пройти.
Чому? Тому що ці очевидно фальшиві адреси все одно слідують шаблонам, які його правила встановлюють для підтвердження.
Зараз це виглядає вже не так розумно, чи не так?
Він занадто обмежувальний
Незважаючи на те, що попередні приклади виглядають настільки очевидно помилковими, деякі формати електронної пошти містять набагато більше спеціальних символів, ніж ми звикли бачити.
У найпростішому вигляді електронна адреса має наступний формат:
ім’я користувача@домен
Електронні адреси побудовані за трьома розділами:
- Локальна частина – як правило, ім’я користувача або посадова роль
- Символ @
- Домен, в тому числі дійсний TLD (домен верхнього рівня)
Якби це було все, що потрібно було шукати в коді, то звичайна перевірка регексу в javascript запобігла б потраплянню до наших списків багатьох поганих контактів.
Як правило, наші адреси електронної пошти можуть містити наступні символи:
- Цифри: від 0 до 9
- Малі та великі літери: від a до z та від A до Z
- Додаткові спеціальні символи: !#$%&’*+-/=?^_`{|}~
- Символ крапки [.]: Але не як перший або кінцевий символ, або не використовується послідовно
Якби хтось звернувся до вашого списку електронної пошти з будь-яким або цілим рядом цих спеціальних символів, більшість з нас запитали б, чи щось не так, і ми були б неправі – всі вони дозволені чинною конвенцією.
Regex не перевіряє нічого, крім синтаксису
Розробники можуть бути стурбовані лише тим, щоб отримати дійсні на вигляд адреси через форму, але це не так. Нам потрібно знати:
- Чи існує домен?
- Чи є MX-запис, що підтверджує наявність у домену поштового сервера?
- Чи має адреса електронної пошти робочу поштову скриньку?
Будь-яке з цих питань, на яке ви отримаєте відповідь “ні”, отримає тверде “ні” і від нас, як маркетологів. Regex не перевіряє нічого з цього – тільки спеціальний інструмент перевірки електронної пошти виявить такі червоні прапорці.
Не фіксує тимчасові та одноразові адреси
Як маркетологи електронної пошти, ми добре знаємо, що багато користувачів створюють фальшиві тимчасові акаунти, щоб скористатися пропозицією, акцією або іншою ситуацією. Це простий спосіб уникнути безладу в існуючих облікових записах електронної пошти або надання будь-якої інформації про себе, яку вони не бажають.
Легко створити тимчасову або одноразову адресу електронної пошти як одноразове рішення. Ці адреси часто зникають через 10 або 15 хвилин після створення, що робить їх неймовірно придатними для використання за призначенням.
Regex не перевірятиме їх. Тимчасові та одноразові адреси електронної пошти проходять всі тести перевірки regex.
Як би ви налаштували електронну пошту regex javascript?
Якщо ви розробник-початківець, вам, ймовірно, не знадобляться наші базові знання, щоб розповісти вам, як це зробити, але для тих з вас, хто має певний досвід у кодуванні, це має виглядати приблизно так:
function 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(“Це не дійсна адреса електронної пошти”);
return false;
}
}
Частина, яка виконує всю важку роботу, – це var mailformat рядок. Виконання і символи в цьому довгому рядку коду визначають, що дозволено, а що ні.
Ви можете помічати прості речі: A , A , а потім спеціальні символи в першій, локальній секції. При цьому +@ потім диктує локальний і доменний роздільник. Після @ ми отримуємо ще один масив інструкцій про те, що допустимо для доменної секції.
Якщо ви хочете набагато глибше зрозуміти, що потрібно для реалізації regex-валідатора, то відвідайте abstract. У них є дійсно хороший посібник про те, що саме потрібно, і вони є експертами, коли справа доходить до всіх видів доповнень і включень API.
Якщо робота варта того, щоб її виконувати, то її варто робити добре, тому перевіряйте свої списки якнайкраще
Існує лише один спосіб переконатися, що ваші списки розсилки знаходяться в преміум-стані, і це використання спеціального інструменту перевірки email-адрес, такого як Вишибала .
Перевірка за допомогою регекса може бути причиною потрапляння фальшивих адрес електронної пошти до ваших списків розсилки, а також блокування дійсних адрес електронної пошти. Коли справа доходить до додавання методу автентифікації до ваших онлайн-форм або методів збору даних, ми рекомендуємо використовувати інші, більш надійні форми валідації.
Зрештою, ведення списків електронної пошти через таку платформу, як Bouncer, є найкращим способом зберегти ваші списки чистими та здоровими, знизити рівень відмов, підвищити ефективність доставки та покращити показники відправника.
Поширені запитання про Regex-повідомлення електронної пошти
Що таке простий реґекс для перевірки імейлів?
Простий реґекс (регулярний вираз) для перевірки email-адрес – це послідовність символів, яка визначає шаблон пошуку для адрес електронної пошти. Його можна використовувати, щоб перевірити, чи відповідає рядок стандартному формату адреси електронної пошти. Однак важливо зазначити, що простий реґекс може не відловлювати всі невірні адреси електронної пошти і пропускати деякі нестандартні формати листів.
Як email regex допомагає відфільтрувати недійсні адреси?
Email regex використовується для порівняння вхідного рядка (адреси електронної пошти, введеної користувачем) з певним форматом. Якщо адреса електронної пошти не відповідає цьому формату, вона вважається недійсною. Це може допомогти запобігти помилкам, забезпечити узгодженість даних і захистити від певних типів ін’єкційних атак.
Що таке пробіл у контексті регексу електронної пошти?
Пробіл у рексі електронної пошти – це будь-який символ, який використовується для позначення пробілів, наприклад, пробілів, табуляції або розриву рядка. У контексті адрес електронної пошти пробіли, як правило, не допускаються, і їх наявність зробить адресу недійсною.
Що таке складний email-регістр?
Складний реґекс – це більш детальний і точний регулярний вираз, який використовується для перевірки імейлів. Він може враховувати різні аспекти адрес електронної пошти, такі як доменні імена, нелатинські символи та специфічні правила щодо того, де можуть з’являтися певні символи. Хоча він забезпечує більш ретельну перевірку, його також може бути складніше впроваджувати і підтримувати.
Як регекс електронної пошти обробляє нелатинські символи та Юнікод?
Обробка нелатинських символів та Юнікоду в регексі електронної пошти може бути складною. Деякі поштові системи дозволяють використовувати Юнікод або нелатинські адреси, але вони не підтримуються повсюдно. Складний регекс електронної пошти може включати класи символів, які відповідають нелатинським символам, але важливо розуміти конкретні вимоги та обмеження системи електронної пошти, з якою ви працюєте.
Яка роль класів символів у регексі електронної пошти?
Класи символів в email regex визначають набір символів, які можуть відповідати будь-якому символу у вхідному рядку. Наприклад, клас символів [a-z] відповідає будь-якій малій англійській літері. Класи символів можна використовувати для визначення допустимих символів для різних частин адреси електронної пошти.
Які обмеження має email regex для валідації імейлів?
Хоча регекс може виявити багато поширених помилок в електронних адресах, він не є повноцінним методом перевірки. Деякі недійсні адреси можуть пройти перевірку регексом, а деякі дійсні адреси можуть не пройти, особливо якщо вони використовують менш поширені формати або символи. Для ретельної перевірки електронної пошти часто рекомендується використовувати сервіси перевірки електронної пошти або надсилати лист з підтвердженням на введену адресу.