X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=NotifySmtpCheck.php;h=7a2670ae639053984ea3281732690bb43a4f82f6;hp=4688f36774f2e247c78d2a93c4a4a92a38007121;hb=refs%2Fheads%2Fwip_alan_T6343_generic_progress_bar_delete;hpb=d61801d952d884abf30fbe70774f69ebfcfa59ad diff --git a/NotifySmtpCheck.php b/NotifySmtpCheck.php index 4688f367..7a2670ae 100644 --- a/NotifySmtpCheck.php +++ b/NotifySmtpCheck.php @@ -1,19 +1,20 @@ check(); - + exit; } function check() @@ -27,50 +28,81 @@ class Pman_Core_NotifySmtpCheck extends Pman return; } - $ip = file_get_contents("https://ifconfig.co/"); - print_R($ip);exit; + $helo = $this->getHelo(); + + echo "HELO : {$helo} \n"; $error = array(); foreach ($ff->Core_Notify['routes'] as $server => $settings){ if(empty($settings['domains']) || empty($settings['username']) || empty($settings['password'])){ - $error[] = "{$server} missing domains / username / password"; + $error[] = "{$server} - Missing domains / username / password"; continue; } - foreach ($settings['domains'] as $dom){ - - $socket_options = array ( - 'ssl' => array( - 'verify_peer' => false, - 'verify_peer_name' => false, - 'allow_self_signed' => true - ) - ); - - $smtp = new Net_SMTP($server, $settings['port'], '058177247238.ctinets.com', false, 0, $socket_options); - - $smtp->setDebug(true); - - $res = $smtp->connect(10); - - if (is_a($res, 'PEAR_Error')) { - die("Cound not connect to {$server}"); - } - - $res = $smtp->auth($settings['username'], $settings['password']); - - if (is_a($res, 'PEAR_Error')) { - die($res); - } - - print_R("SUCCESS? {$res} \n"); - exit; - + $socket_options = array ( + 'ssl' => array( + 'verify_peer' => false, + 'verify_peer_name' => false + ) + ); + if (empty($settings['port'])) { + $settings['port'] = 25; } + $smtp = new Net_SMTP($server, $settings['port'], $helo, false, 0, $socket_options); + +// $smtp->setDebug(true); + echo "Connecting : {$server}:{$settings['port']} \n"; + $res = $smtp->connect(10); + + if (is_a($res, 'PEAR_Error')) { + $error[] = "{$server} - Cound not connect"; + continue; + } + + echo "Login As : {$settings['username']}:{$settings['password']} \n"; + + $res = $smtp->auth($settings['username'], $settings['password']); + + if (is_a($res, 'PEAR_Error')) { + $error[] = "{$server} - Cound not login"; + continue; + } } + + if(!empty($error)){ + print_r($error); + exit; + } + + return; + } + + function getHelo() + { + $ifconfig = file_get_contents("https://ifconfig.co/"); + $dom = new DomDocument('1.0', 'utf-8'); + @$dom->loadHTML($ifconfig); + + $xpath = new DOMXPath($dom); + + $element = $xpath->query("//code[@class='ip']"); + + if(!$element->length){ + return; + } + + $ip = $element->item(0)->nodeValue; + + $cmd = "host {$ip}"; + + $e = `$cmd`; + + $helo = substr(array_pop(explode(' ', $e)), 0, -2); + + return $helo; } } \ No newline at end of file