Autor | Zpráva | ||
---|---|---|---|
opsidiam Profil |
#1 · Zasláno: 12. 2. 2017, 01:34:38
dobry den mam problem a trapim sa s tym asi tyzden neviem si rady s jednym scriptom ktory je na overenie existencie mailov
<?php session_start(); function jValidateEmailUsingSMTP($sToEmail, $sFromDomain = "gmail.com", $sFromEmail = "mail@gmail.com", $bIsDebug = false) { $bIsValid = true; // assume the address is valid by default.. $aEmailParts = explode("@", $sToEmail); // extract the user/domain.. getmxrr($aEmailParts[1], $aMatches); // get the mx records.. if (sizeof($aMatches) == 0) { return false; // no mx records.. } foreach ($aMatches as $oValue) { if ($bIsValid && !isset($sResponseCode)) { // open the connection.. $oConnection = @fsockopen($oValue, 25, $errno, $errstr, 30); $oResponse = @fgets($oConnection); if (!$oConnection) { $aConnectionLog['Connection'] = "ERROR"; $aConnectionLog['ConnectionResponse'] = $errstr; $bIsValid = false; // unable to connect.. } else { $aConnectionLog['Connection'] = "SUCCESS"; $aConnectionLog['ConnectionResponse'] = $errstr; $bIsValid = true; // so far so good.. } if (!$bIsValid) { if ($bIsDebug) print_r($aConnectionLog); return false; } // say hello to the server.. fputs($oConnection, "HELO $sFromDomain\r\n"); $oResponse = fgets($oConnection); $aConnectionLog['HELO'] = $oResponse; // send the email from.. fputs($oConnection, "MAIL FROM: <$sFromEmail>\r\n"); $oResponse = fgets($oConnection); $aConnectionLog['MailFromResponse'] = $oResponse; // send the email to.. fputs($oConnection, "RCPT TO: <$sToEmail>\r\n"); $oResponse = fgets($oConnection); $aConnectionLog['MailToResponse'] = $oResponse; // get the response code.. $sResponseCode = substr($aConnectionLog['MailToResponse'], 0, 3); $sBaseResponseCode = substr($sResponseCode, 0, 1); // say goodbye.. fputs($oConnection,"QUIT\r\n"); $oResponse = fgets($oConnection); // get the quit code and response.. $aConnectionLog['QuitResponse'] = $oResponse; $aConnectionLog['QuitCode'] = substr($oResponse, 0, 3); if ($sBaseResponseCode == "5") { $bIsValid = false; // the address is not valid.. } // close the connection.. @fclose($oConnection); } } if ($bIsDebug) { print_r($aConnectionLog); // output debug info.. } return $bIsValid; } $email = "opsidiam@gmail.com"; $domain = substr($email, strpos($email, '@') + 1); if (checkdnsrr($domain) !== FALSE) { echo 'OK!<br />'; }else{echo "ERROR<br />";} if (filter_var($email, FILTER_VALIDATE_EMAIL) !== FALSE) { echo 'OK!<br />'; }else{echo "ERROR<br />";} $bIsEmailValid = jValidateEmailUsingSMTP("opsidiam@gmail.com", "gmail.com", "email@gmail.com"); echo $bIsEmailValid ? "<b>OK</b>" : "ERROR"; ?> snazim sa overit existenciu emailu opsidiam@gmail.com (to je moja adresa ktora existuje) ale script mi vypisuje ze adresa neexistuje prosim pomozte mi som v koncoch :( |
||
Davex Profil |
#2 · Zasláno: 12. 2. 2017, 01:55:23
Co se vypíše po zapnutí ladících informací na řádku 95?
$bIsEmailValid = jValidateEmailUsingSMTP("opsidiam@gmail.com", "gmail.com", "email@gmail.com", true); |
||
TomášK. Profil * |
#3 · Zasláno: 12. 2. 2017, 06:10:18
Ta funkce označuje i platné e-mailové adresy jako neplatné (podle RFC). Většinou asi projde, e-mailové servery se snaží vypořádat i s klienty, kteří RFC nedodržují.
E-mailová adresa nemusí mít MX record (RFC 5321). Cílový server může odmítnout odesílající server vinou neplatného SPF záznamu (a bude mít pravdu, i když na gmailu je nastavený jen SOFTFAIL). Cílový server může mít odesílající server na blacklistu a adresa bude označená jako neplatná … |
||
opsidiam Profil |
#4 · Zasláno: 12. 2. 2017, 19:34:17
Array ( [Connection] => ERROR [ConnectionResponse] => Network is unreachable ) ERROR
|
||
Davex Profil |
#5 · Zasláno: 12. 2. 2017, 23:56:50
opsidiam:
Ta chyba znamená, že se nepodařilo připojit k poštovnímu serveru. Zřejmě je na webhostingu blokované odchozí spojení na TCP port 25. |
||
opsidiam Profil |
#6 · Zasláno: 13. 2. 2017, 19:54:18
v tom prypade mi to preco nejde ani na localhoste?
|
||
Davex Profil |
#7 · Zasláno: 13. 2. 2017, 23:38:42
opsidiam:
Netuším, jestli ti to třeba neblokuje firewall, poskytovatel internetového připojení atd. |
||
Časová prodleva: 6 let
|
0