Как узнать, существует ли адрес электронной почты через PHP? - PullRequest
3 голосов
/ 21 ноября 2010

Некоторые люди подписались на мой блог, введя свой адрес электронной почты.

Но некоторые адреса электронной почты не существуют.

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

Ответы [ 4 ]

8 голосов
/ 21 ноября 2010

Отправьте им письмо с подтверждением со ссылкой и активируйте подписку, только если они нажмут на эту ссылку.

2 голосов
/ 21 ноября 2010

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

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

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

Вы можете реализовать следующие команды (или использовать один из множества PHP-скриптов, которые делают это за вас):

HELO <your server name>
MAIL FROM: <>
RCPT TO: <destination@to.check>
QUIT
2 голосов
/ 21 ноября 2010

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

Если вы хотите убедиться, чтотолько реальные аккаунты используются для подписки, отправьте электронное письмо с подтверждением, где пользователь щелкает ссылку для подтверждения своего аккаунта (как casablanca говорит здесь ).

1 голос
/ 22 ноября 2010

Вы можете искать записи MX с помощью:

$result = getmxrr($hostname, $mxHosts);
if(count($mxHosts) < 1){
   //no MX records found
}

Это не позволит вашим пользователям использовать тип ввода 'jdjshjk@fdhjk.dff'. Смотрите страницу руководства на php.net: http://www.php.net/manual/en/function.getmxrr.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...