query($domain, "MX"); if ($packet) { //MX records are presented foreach($packet->answer as $rr) array_push($hosts, $rr->exchange); return $hosts; } } function check_subscription($email, $lists) { $output = array(); $domains = resolve_domain("lists.aegee.org"); foreach($domains as $server) { $smtp = new Net_SMTP($server, 25, "mail.aegee.org"); if (PEAR::isError($e = $smtp->connect(5))) { echo $smtp->getResponse(); $smtp->disconnect(); continue; }; if (PEAR::isError($e = $smtp->mailFrom($email))) { echo $smtp->getResponse(); } foreach($lists as $list) { $smtp->rcptTo($list. "-check-subscription@aegee.org"); $res = $smtp->getResponse(); // echo $list . " = " . $res[0] . $res[1]. "\n"; if (strcmp($res[1], "address not deliverable") == 0) $output[$list] = -2; else $output[$list] = ($res[0] < 500 ) ? 1 : -1; } $smtp->disconnect(); break; } return $output; } $lists = array("aegee-event-l", "aegee-agora-l", "aegee-l", "aegee-su-l", "announce-l"); $output = check_subscription($_GET["email"], $lists); //needed for PHP below 5.2 require "Services/JSON.php"; $json = new Services_JSON(); echo "(" . $json->encode($output) . ")"; //for PHP 5.2 or above //echo "(" . json_encode($output) . ");"; ?>