Интересно, как я мог проверить, содержит ли адрес электронной почты моей базы данных (форума) почтовый спам.
Я думаю, сначала проверьте, существует ли домен:
$domain = substr($email, strpos($email, '@') + 1);
if (checkdnsrr($domain) !== FALSE) {
echo 'Domain is valid!';
}
но как я могу проверить, действительно ли существует учетная запись электронной почты?
Нет способа программно проверить, существует ли адрес электронной почты для абсолютной уверенности. Вы можете сделать обоснованные догадки, через.
1) Зондирование: найдите почтовый обменник для целевого домена (запись DNS MX), откройте SMTP-соединение и проверьте адрес, используя RCPT TO
Команда SMTP, тогда QUIT
без фактической отправки электронного письма. Код ответа SMTP, который вы получите для RCPT TO, сообщит, доступен ли почтовый ящик. Этот метод имеет довольно хороший показатель успеха, но некоторые серверы будут отвечать «О, конечно, мне очень нравится этот получатель» если домен находится среди принятых доменов ретрансляции, но пользователь не существует. Это типичная проблема с резервными почтовыми серверами, которые не имеют информации о реальных пользователях.
2) VRFY: откройте SMTP-соединение так же, как описано выше, затем используйте SMTP VRFY
Команда, чтобы проверить, существует ли пользователь. Это может привести к сбою, учитывая, что поддержка VRFY часто отключена.
Других решений пока нет …