2013-09-12 5 views
-2

Я пробовал много методов для отслеживания электронной почты, является действительным или нет, прежде чем отправлять его. Я использую почтовую программу php и быструю почту для отправки электронной почты. Многие веб-сайты сообщили ссылку mx. Но он возвращает только домен действителен или нет. NOt возвращает электронное письмо. Например, если у меня есть домен example.com, и я создал только [email protected], если я попытался отправить почту на [email protected], также возвращается письмо. Но перед отправкой этого сообщения мне нужен результат для [email protected]., как проверить подлинность электронной почты

Так же, как в процессе http://www.email-validator.net/

+0

Невозможно проверить, существует ли аддон электронной почты или нет, пока вы не используете какую-либо глобальную услугу, содержащую два миллиона адресов электронной почты. Но они работают только на то, чтобы поймать спам-ботов и не распространять адреса электронной почты в третьих руках. Я пробовал email-validator.net, и это результат: OK - Catch-All Active Почтовый сервер для этого домена принимает адрес, но он также реализует общую политику. По этой причине невозможно определить, существует ли почтовая учетная запись с этим именем, не отправляя сообщение и ожидая ответа. Таким образом, нет обратного вызова. –

+1

Вы в основном спрашиваете, как вы делаете то, что заплатили за услугу, не платя за это? –

+0

@WigglerJtag, как платные сервисы проверяют идентификатор серверов, у которых есть доступ ко всем включенным ?, например, email-validator.net и все остальные (их много, все не могут иметь два миллиона адресов электронной почты в своем db) , поэтому должен быть способ проверить электронную почту даже для того, чтобы поймать все серверы, что вы думаете? – scottydelta

ответ

1

Try просто здание

$APIUrl = 'http://www.email-validator.net/api/verify'; 
$Params = array('EmailAddress' => $Email, 
       'APIKey' => '[your API key]'); 
$Request = @http_build_query($Params); 
$ctxData = array(
    'method' => "POST", 
    'header' => "Connection: close\r\n". 
    "Content-Length: ".strlen($Request)."\r\n", 
    'content'=> $Request); 
$ctx = @stream_context_create(array('http' => $ctxData)); 

// send API request 
$result = json_decode(@file_get_contents(
    $APIUrl, false, $ctx)); 

// check API result 
if ($result && $result->{'status'} > 0) { 
    switch ($result->{'status'}) { 
     // valid addresses have a {200, 207, 215} result code 
     case 200: 
     case 207: 
     case 215: 
       echo "Address is valid."; 
       break; 
     case 114; 
       // retry 
       break; 
     default: 
       echo "Address is invalid."; 
       echo $result->{'info'}; 
       echo $result->{'details'}; 
       break; 
    } 
} else { 
    echo $result->{'info'}; 
} 

в код

0

Там нет никакого способа, чтобы быть 100% уверены, что электронная почта непросроченный.

Что вы можете попытаться сделать, это подключиться к почтовому серверу, запустить почтовую сессию и «спросить» сервер на прием почты для данного адреса.

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

Что касается сайта вы упомянули, попробуйте проверить этот адрес, например: [email protected]

Вы получите ответ, что сервер принят этот адрес, но это не делает означает, что это действительный ...

0

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

Смежные вопросы