Мы перейдем сразу к короткому ответу и позаботимся о длинноволновом объяснении после.

Довольно просто... нет.

Я слышу, как разработчики и защитники дьявола ставят под сомнение наш прямой отказ от проверки электронной почты с помощью regex, что вызывает дальнейший вопрос о том, зачем она вообще существует.

Ну, мы не будем отрицать, что это может быть полезным инструментом, и это, безусловно, умный маленький набор, чтобы предотвратить пользователей от добавления любого старого текста в форму или другой исполняемый носитель. В какой-то момент регекс электронной почты сыграл свою роль в том, как мы собираем данные электронной почты.

Но сейчас? В соответствии с современными технологиями и стандартами?

Мы говорим, что у него был свой день.

Если вы хотите быть уверены, что получаете чистые адреса электронной почты, которые не испортят ваш email-маркетинг, показатели отказов, показатели доставляемости и все то, что необходимо для поддержания высоких показателей и конверсии, то regex - это не то, что нужно.

Содержание

Что такое регекс проверки электронной почты?

Регекс - это сокращение от регулярного выражения; это термин, используемый в различных языках кодирования. Регекс, или регулярные выражения, относится к закодированным текстовым строкам, предназначенным для соответствия шаблонам, найденным в других строках.

Они могут быть довольно удобны, когда пользователю необходимо сопоставить строку символов с определенным типом шаблона для проверки правильности предоставленной информации. Рассмотрим телефонные номера, ZIP-коды, даты, и да, большой, который мы имеем дело с электронными адресами.

С помощью простого шаблона точная строка может быть сопоставлена с набором правил. Когда простые шаблоны усложняются, регресс становится менее эффективным и с большей вероятностью дает плохие результаты.

Пока это звучит неплохо, так в чем же проблема с регекс-проверкой электронной почты?

Каким бы изящным ни был такой инструмент, как регекс, он не покрывает нужные вам проверки. Взгляни на это:

[email protected]
[email protected]
[email protected]
[email protected]

Допустим, вы заметили любое из вышеперечисленных добавлений в ваш список адресов электронной почты; вы сразу же пометите их (или должны пометить!). Вы не поверите, что какие-либо из них являются действительными записями реальных людей, проявляющих интерес к вашему продукту и услуге.

Хотя, проверка электронной почты на регекс будет. Это пропустит их всех.

Зачем? Потому что эти очевидно фальшивые адреса все еще следуют правилам, которые она установила для подтверждения.

Теперь это выглядит не очень умно, не так ли?

Слишком ограничительный

Несмотря на то, что предыдущие примеры выглядят настолько очевидно ложными для нас, некоторые форматы электронной почты включают гораздо больше специальных символов, чем мы привыкли видеть.

В простейшем виде и по адресу электронной почты следует следующий формат:

имя пользователя@домен

Адреса электронной почты построены в трех разделах:

  • Локальная часть - как правило, имя пользователя или роль в работе.
  • Символ @
  • Домен, включая действительный ДВУ (домен верхнего уровня).

Если это все, что нужно искать в коде, то типичная проверка регресса на javascript предотвратит попадание большого количества плохих контактов в наши списки.

Обычно наши адреса электронной почты могут содержать следующие символы:

  • Цифры: 0-9
  • Нижний и верхний регистр: от a до z и от A до Z
  • Дополнительные специальные символы: !#$1T1T&'*+-/=?^_``{|}~
  • Точечный персонаж [...]: Но не в качестве первого или последнего символа, и не используется последовательно.

Если бы кто-нибудь подал заявление в ваш список адресов электронной почты с каким-либо или рядом этих специальных символов, большинство из нас задалось бы вопросом, что что-то не так, и мы бы ошиблись - они все разрешены в соответствии с действующей конвенцией.

Регекс не проверяет ничего, кроме синтаксиса.

Разработчики могут беспокоиться только о том, чтобы получить через форму действительные адреса, но мы этого не делаем. Нам нужно знать:

  • Существует ли домен?
  • Есть ли запись MX, доказывающая, что в домене есть почтовый сервер?
  • Есть ли на этом электронном адресе рабочий почтовый ящик?

Любой из тех вопросов, которые засчитывают "нет", получит жесткое "нет" и от нас, маркетологов. Regex не проверяет ни один из этих вопросов только на предмет того, что специальный инструмент проверки электронной почты поднимет такие красные флаги.

Он не обнаруживает временные и одноразовые адреса.

Как маркетологи электронной почты, мы прекрасно знаем, что многие пользователи создают фальшивые временные учетные записи, чтобы воспользоваться предложением, акцией или другой ситуацией. Это простой способ избежать загромождения существующих учетных записей электронной почты или предоставления какой-либо информации о себе, которую они не хотят предоставлять.

Легко настроить временный или одноразовый адрес электронной почты в качестве одноразового решения. Эти адреса часто исчезают в течение 10 или 15 минут после настройки, что делает их невероятно пригодными для использования по назначению.
Регекс не будет их проверять. Временные и одноразовые адреса электронной почты проходят все тесты проверки регекса.

Как бы вы настроили почтовый регекс javascript?

Если вы опытный разработчик, вам, вероятно, не понадобится наше базовое понимание темы, чтобы рассказать вам, как это делается, но для тех из вас, кто имеет некоторый опыт в кодировании, это должно выглядеть примерно так:

функция 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("Это не действительный адрес электронной почты");

возвращайся фальшивым;

}

}

Часть, которая делает всю тяжелую работу, - это почтовый формат вара Линия. Выполнение и символы в этой длинной строке кода определяют, что разрешено, а что нет.

Ты можешь заметить простые вещи: a-z, A-Z, 0-9а затем специальные символы в первой, локальной секции. +@ затем диктует локальный и доменный разделитель. Следуя @, мы получаем еще один массив инструкций о том, что допустимо для раздела домена.

Если вы хотите получить более глубокое представление о том, что требуется для реализации валидатора regex, зайдите на сайт abstract. У них есть действительно хорошее руководство по тому, что именно требуется, и они являются экспертами в вопросах всех видов дополнений и включений API.

Если работа стоит того, то лучше всего проверять свои списки, как можно лучше.

Есть только один способ убедиться в том, что ваши списки электронной почты в премиум-состоянии, и использовать специальный инструмент для проверки электронной почты, такой как Вышибала.

Регекс-проверка может быть ответственна за то, что фальшивые адреса электронной почты попадают в ваши списки, а также за блокировку действительных. Когда речь заходит о добавлении метода аутентификации в ваши онлайн-формы или методы сбора данных, мы предлагаем другие, более надежные формы валидации.

В конечном итоге, использование списков рассылки через платформу, подобную Bouncer, - это лучший способ сохранить списки чистыми и здоровыми, снизить количество отказов, обеспечить высокую доставляемость и поддерживать рейтинг отправителей в идеальном состоянии.

FAQ по регексам для сообщений электронной почты

Что такое простой regex для проверки электронной почты?

Простой regex (регулярное выражение) для проверки электронных адресов - это последовательность символов, определяющая шаблон поиска электронных адресов. С его помощью можно проверить, соответствует ли строка стандартному формату адреса электронной почты. Однако важно отметить, что простой regex может не отлавливать все недействительные адреса электронной почты и пропускать некоторые нестандартные форматы.

Как почтовый regex помогает отсеивать недействительные адреса электронной почты?

Email regex используется для проверки соответствия входной строки (адреса электронной почты, вводимого пользователем) определенному формату. Если адрес электронной почты не соответствует этому формату, он считается недействительным. Это позволяет предотвратить опечатки, обеспечить согласованность данных и защитить от некоторых типов инъекционных атак.

Что такое пробельный символ в контексте почтового regex?

Под символом пробела в почтовом regex понимается любой символ, используемый для обозначения пустых мест, например, пробел, табуляция или перевод строки. В контексте адресов электронной почты пробельные символы, как правило, не допускаются, и их наличие делает адрес электронной почты недействительным.

Что такое сложный почтовый regex?

Сложный почтовый regex - это более подробное и точное регулярное выражение, используемое для проверки электронной почты. Оно может учитывать различные аспекты почтовых адресов, такие как доменные имена, нелатинские символы и особые правила, определяющие, где могут встречаться определенные символы. Хотя он обеспечивает более тщательную проверку, его применение и поддержка могут быть более сложными.

Как почтовый regex обрабатывает нелатинские символы и Unicode?

Работа с нелатинскими символами и Unicode в почтовых regex может быть сложной. Некоторые почтовые системы позволяют использовать Unicode или нелатинские адреса электронной почты, но они не поддерживаются повсеместно. Сложный почтовый регекс может включать классы символов для соответствия нелатинским символам, но при этом необходимо понимать специфические требования и ограничения почтовой системы, с которой вы работаете.

Какова роль классов символов в почтовом regex?

Классы символов в почтовом regex определяют набор символов, которые могут соответствовать любому отдельному символу во входной строке. Например, класс символов [a-z] соответствует любой строчной английской букве. Классы символов могут быть использованы для определения допустимых символов для различных частей адреса электронной почты.

Каковы ограничения использования regex для проверки электронной почты?

Хотя почтовый regex позволяет выявить многие распространенные ошибки в адресах электронной почты, он не является полным методом проверки. Некоторые недействительные адреса могут пройти проверку с помощью regex, а некоторые действительные адреса могут не пройти проверку, особенно если в них используются менее распространенные форматы или символы. Для тщательной проверки электронной почты часто рекомендуется использовать сервисы проверки электронной почты или отправлять на введенный адрес письмо с подтверждением.

Подробная проверка электронной почты, вышибала