В других ответах здесь обсуждаются различные проблемы, связанные с попыткой сделать это. Я подумал, что покажу, как вы можете попробовать это, если хотите научиться, делая это самостоятельно.
Вы можете подключиться к почтовому серверу через telnet, чтобы узнать, существует ли адрес электронной почты. Вот пример проверки адреса электронной почты на stackoverflow.com
:
C: \> nslookup -q = mx stackoverflow.com
Неавторитетный ответ:
stackoverflow.com MX предпочтение = 40, почтовый обменник = STACKOVERFLOW.COM.S9B2.PSMTP.com
stackoverflow.com MX предпочтение = 10, почтовый обменник = STACKOVERFLOW.COM.S9A1.PSMTP.com
stackoverflow.com MX предпочтение = 20, почтовый обменник = STACKOVERFLOW.COM.S9A2.PSMTP.com
stackoverflow.com MX предпочтение = 30, почтовый обменник = STACKOVERFLOW.COM.S9B1.PSMTP.com
C: \> telnet STACKOVERFLOW.COM.S9A1.PSMTP.com 25
220 Postini ESMTP 213 y6_35_0c4 готов. Раздел 17538.45 Кодекса бизнеса и профессий CA запрещает использование этой системы для нежелательной рекламы по электронной почте.
привет привет
250 Postini передает привет
почта от: <me@myhost.com>
250 ок
rcpt на: <fake@stackoverflow.com>
550-5.1.1 Учетная запись электронной почты, к которой вы пытались подключиться, не существует. Пожалуйста попробуйте
550-5.1.1 двойная проверка адреса электронной почты получателя на предмет опечаток или
550-5.1.1 лишние пробелы. Узнайте больше на
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 w41si3198459wfd.71
Строки с префиксом числовых кодов представляют собой ответы от SMTP-сервера. Я добавил несколько пустых строк, чтобы было удобнее читать.
Многие почтовые серверы не возвращают эту информацию в качестве средства предотвращения сбора адресов электронной почты спамерами, поэтому вы не можете полагаться на этот метод. Однако у вас может быть некоторый успех в очистке некоторых явно плохих адресов электронной почты путем обнаружения недопустимых почтовых серверов или отклонения адресов получателей, как указано выше.
Также обратите внимание, что почтовые серверы могут занести вас в черный список, если вы сделаете к ним слишком много запросов.
В PHP я верю , что вы можете использовать fsockopen
, fwrite
и fread
выполнить указанные выше действия программно:
$smtp_server = fsockopen("STACKOVERFLOW.COM.S9A1.PSMTP.com", 25, $errno, $errstr, 30);
fwrite($smtp_server, "helo hi\r\n");
fwrite($smtp_server, "mail from: <me@myhost.com>\r\n");
fwrite($smtp_server, "rcpt to: <fake@stackoverflow.com>\r\n");