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

В других ответах здесь обсуждаются 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

email

smtp

telnet

email-validation

2022-11-17T22:40:00+00:00
Вопросы с похожей тематикой, как у вопроса:

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