PHP-скрипт для проверки правильности электронного письма без отправки подтверждения

Я нашел пару онлайн-сервисов, которые делают это, и я нашел этот пост в stackoverflow об этом:

Как проверить, существует ли адрес электронной почты без отправки электронного письма?

Проблема в том, что PHP-скрипт, связанный с ним, требует, чтобы вы заполнили список серверов имен и доменов, и поэтому (я думаю) работает только в том случае, если вы проверяете электронные письма на известном домене. Я хочу что-то, что будет работать для любого письма (по крайней мере, сработает с высокой вероятностью). Я нашел скрипт, который это делает, который я могу купить за 40 долларов, но я бы предпочел найти то же самое с открытым исходным кодом.

Спасибо за любой совет, Джона


person Jonah    schedule 28.02.2011    source источник
comment
Вы не можете проверить электронную почту со 100% точностью, не отправив подтверждение.   -  person Mike Caron    schedule 01.03.2011
comment
Я согласен. Если бы методы, описанные в вашей ссылке, поддерживались в целом, мы были бы в глубоком $!?^, так как спамеры могут делать то же самое с нашими почтовыми адресами...   -  person Shahriyar Imanov    schedule 01.03.2011
comment
мммм .... может кто-нибудь сказать мне, что случилось с другим ответом, опубликованным здесь Кристофером вчера? Кажется, он был удален. С чего бы это?   -  person Jonah    schedule 01.03.2011


Ответы (1)


Этот:

$emailValidation = /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/;

if(preg_match($emailValidation, $testEmail)) {
    echo "valid email.";
} else {
    echo "invalid email.";
}

Хорошо используемое регулярное выражение для проверки электронной почты, совместимое с PHP.

Просто проверьте адреса электронной почты, и все готово.

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

person ocodo    schedule 28.02.2011
comment
Как, черт возьми, вы заключаете это выражение в кавычки? - person Norse; 10.03.2012
comment
Разве не следует хотя бы запрашивать записи MX из домена, чтобы проверить, доставляется ли почта? - person Dan; 30.04.2013
comment
Этот ответ, хотя и принят, не делает того, о чем просили. - person PlanetUnknown; 12.01.2016
comment
Вы должны опубликовать ответ, если у вас есть что-то полезное, чтобы добавить - person ocodo; 12.01.2016