Существует ли php библиотека для проверки адреса электронной почты? [закрытый]

Вы можете добавить ссылку (ref="yourMenu") на компонент VMenu. После этого вы можете вызывать методы, определенные в keyable mixin, например :

const menu = this.$refs.yourMenu
menu.changeListIndex(e)  // e is event that has brought you here
// or...
menu.onKeyDown(e)        // if you don't want to handle keys in different way
7
задан MrValdez 3 October 2008 в 04:49
поделиться

7 ответов

Я нашел библиотеку в коде Google: http://code.google.com/p/php-email-address-validation/

Есть еще какие-нибудь?

5
ответ дан 6 December 2019 в 04:49
поделиться

[ОБНОВЛЕННЫЙ] я сопоставил все, что я знаю о проверке адреса электронной почты здесь: http://isemail.info, который теперь не только проверяет, но также и диагностирует проблемы с адресами электронной почты. Я соглашаюсь со многими комментариями здесь, что проверка является только частью ответа; см. мое эссе по http://isemail.info/about.

Я теперь сопоставил тестовые сценарии от Cal Henderson, Dave Child, Phil Haack, Doug Lovell и тестовых адресов RFC 3696. 158 всего.

Я запустил все эти тесты против всех блоков проверки допустимости, которые я мог найти. Сравнение здесь: http://www.dominicsayers.com/isemail

Я попытаюсь усовершенствовать эту страницу, поскольку люди улучшают свои блоки проверки допустимости. Благодаря Cal, Dave и Phil для их справки и сотрудничества в компиляции этих тестов и конструктивной критики моего собственного блока проверки допустимости.

Люди должны знать об опечатках против RFC 3696 в частности. Тремя из канонических примеров являются на самом деле недопустимые адреса. И максимальная длина адреса является 254 или 256 символами, не 320.

10
ответ дан 6 December 2019 в 04:49
поделиться

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

Как Вы указываете со ссылкой на известного мамонта regex, проверка всех форм адреса электронной почты трудна, близко к невозможному. Настолько легко сделать это неправильно, даже для тривиальных электронных писем стиля (я нашел слишком много сайтов, отклоняющих ограничения в адресах электронной почты! И самые старые regexes отклоняют TLDs больше чем 4 букв!).

AFAIK, "Jean-Luc B. O'Grady" @example.com и e=m.c^2 [82.128.45.117] являются оба допустимыми адресами... В то время как I-Made-It-Up@Absurd-Domain-Name.info, вероятно, будет недопустим.

Так так или иначе я просто проверил бы, что мы имеем что-то, уникальное, что-то еще, и идем с ним: это зафиксировало бы большинство пользовательских ошибок (как пустое поле или имя пользователя вместо адреса электронной почты).
Если бы пользователь хочет дать поддельный адрес, он просто дал бы что-то случайное, смотрящее корректный (see@on.tv или bill.gates@microsoft.com). И никакой блок проверки допустимости не найдет опечатки (jhon.b@example.com вместо john.b@example.com).

Если бы Вы действительно хотите проверить электронные письма против полного RFC, я советовал бы для использования regexes, чтобы разделить вокруг, затем проверить отдельно локальное имя и доменное имя. Отдельный случай локального имени, запускающегося с "от других случаев, и т.д. Отдельный случай доменного имени, запускающегося с [от других случаев, и т.д. Проблема разделения в меньших определенных доменах и использование regexes только на четко определенные, более простые случаи.
Этот совет может быть применен к партии использования regex, конечно...

12
ответ дан 6 December 2019 в 04:49
поделиться

Cal Henderson (Flickr) записал совместимый адрес электронной почты RFC822 matcher с объяснением RFC и кода, использующего RFC для соответствия адресам электронной почты. Я использовал его в течение достаточно долгого времени теперь без жалоб.

RFC822 (опубликованный в 1982) определяет, среди других вещей, формата для интернет-текстового сообщения (электронная почта) адреса. Можно найти RFC путем поиска с помощью Google - существуют много много копий их онлайн. Они являются немного краткими и удачливые отформатированный, но с небольшим усилием мы можем seewhat они достигать.

... Обновление...

Как Porges, на который указывают в комментариях, библиотека по ссылке устарела, но та страница имеет ссылку на обновленную версию.

8
ответ дан 6 December 2019 в 04:49
поделиться

Вы посмотрели на функции filter_ PHP? Они не прекрасны, но они делают довольно достойное задание, по моему опыту.

Использование в качестве примера (возвращает булевскую переменную):

filter_var($someEmail, FILTER_VALIDATE_EMAIL);

16
ответ дан 6 December 2019 в 04:49
поделиться

Zend_Validate включает почтовый блок проверки допустимости.

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

1
ответ дан 6 December 2019 в 04:49
поделиться

я рекомендовал бы посмотреть на исходный код Zend_Validate_EmailAddress [источник].

после того как Вам зафиксировали Ваши зависимости, можно просто сделать следующее:

$mail_validator = new Zend_Validate_EmailAddress();
$mail_validator->isValid($address);   // returns true or false

лучше всего должен был бы получить полную Библиотеку Зенда в Ваш проект через внешний svn и указать на включать путь к нему...

но можно просто загрузить необходимые файлы (1,2,3,4,5,6) и включать их всех (удалите вызовы require_once),

0
ответ дан 6 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: