Как проверить, существует ли адрес электронной почты, не отправляя электронное письмо?
В других ответах здесь обсуждаются phtml различные проблемы, связанные php-fpm с попыткой сделать это. Я email-integration подумал, что покажу, как email-injection вы можете попробовать это, если phtml хотите научиться, делая это php.ini самостоятельно.
Вы можете php5 подключиться к почтовому email серверу через telnet, чтобы email узнать, существует ли адрес php.ini электронной почты. Вот пример php проверки адреса электронной php почты для stackoverflow.com
:
C:\>nslookup -q=mx stackoverflow.com Non-authoritative answer: stackoverflow.com MX preference = 40, mail exchanger = STACKOVERFLOW.COM.S9B2.PSMTP.com stackoverflow.com MX preference = 10, mail exchanger = STACKOVERFLOW.COM.S9A1.PSMTP.com stackoverflow.com MX preference = 20, mail exchanger = STACKOVERFLOW.COM.S9A2.PSMTP.com stackoverflow.com MX preference = 30, mail exchanger = STACKOVERFLOW.COM.S9B1.PSMTP.com C:\>telnet STACKOVERFLOW.COM.S9A1.PSMTP.com 25 220 Postini ESMTP 213 y6_35_0c4 ready. CA Business and Professions Code Section 17538.45 forbids use of this system for unsolicited electronic mail advertisements. helo hi 250 Postini says hello back mail from:250 Ok rcpt to: 550-5.1.1 The email account that you tried to reach does not exist. Please try 550-5.1.1 double-checking the recipient's email address for typos or 550-5.1.1 unnecessary spaces. Learn more at 550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 w41si3198459wfd.71
Строки с префиксом email-injection числовых кодов представляют php собой ответы от SMTP-сервера. Я php5 добавил несколько пустых php-cli строк, чтобы было удобнее email-injection читать.
Многие почтовые серверы smtp не возвращают эту информацию email-injection в качестве средства предотвращения email сбора адресов электронной phtml почты спамерами, поэтому php вы не можете полагаться на php-fpm этот метод. Однако вы можете php-errors добиться некоторого успеха email-integration в очистке некоторых явно telnet плохих адресов электронной email-validation почты, обнаружив недействительные email почтовые серверы или отклонив email-validation адреса получателей, как указано php выше.
Обратите внимание, что php5 почтовые серверы могут занести php-fpm вас в черный список, если php5 вы сделаете к ним слишком email-injection много запросов.
Я считаю, что php-fpm в PHP вы можете использовать smtp fsockopen
, fwrite
и fread
для программного выполнения telnet вышеуказанных шагов:
$smtp_server = fsockopen("STACKOVERFLOW.COM.S9A1.PSMTP.com", 25, $errno, $errstr, 30);
fwrite($smtp_server, "helo hi\r\n");
fwrite($smtp_server, "mail from: \r\n");
fwrite($smtp_server, "rcpt to: \r\n");
php
smtp
telnet
email-validation
Как проверить, существует ли адрес электронной почты, не отправляя электронное письмо?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.