Mata Hary 0 Denunciar post Postado Abril 21, 2007 Alguém poderia me ajudar?Estou precisando de um sistema que extrai a lista de contatos de um e-mail e envia convite para paricipar de comunidade. Tipo aqueles que o Gazzag usa para enviar convites. Funciona assim: a pessoa digita o e-mail e a senha do hotmail ou yahoo e o sistema puxa a lista de contatos e envia convites para todos os contatos.Alguém sabe como fazer isso? Ou conhece algum programa que faça? Compartilhar este post Link para o post Compartilhar em outros sites
Mata Hary 0 Denunciar post Postado Maio 2, 2007 Achei o Script!!!! Só que acho que não to sabendo usar. 1- Ele trava 2- Se estou com MSN conectado ele desconecta e avisa que estou entrando de outro computador (uso o Windows Live Messenger 8.1). Aqui está o Script!! Alguém pode me ajudar a colocar isso pra funcionar? Script para convidar amigos do MSN Página Index.php <?phpif(isset($_GET['mod']) == 'request'){ //pega dados postados $login = $_POST['txtmail']; $senha = $_POST['txtsenha']; //altera o safe mode ini_set(SAFE_MODE,1); //inclusão da classe include('msnlistgrab.php'); //conexao e request de dados $gm = new msnlistgrab(); $gm->user = $login; $gm->password = $senha; $gm->GetRecords(); //lista resultado foreach ($gm->res as $val){ echo $val .'<BR>'; } //mostra a quantidade de registros echo '<hr/>'.$gm->total.' registros identificados de cadastrados no seu MSN.';}else{?><html><body><form action="<?=$_SERVER['PHP_SELF']?>?mod=request" method="post">e-mail do msn :<br/><input type="text" name="txtmail"/><br/>senha do msn :<br/><input type="password" name="txtsenha"/><br/><input type="submit" value="envia"/> <input type="reset" value="limpar campos"/></form></body></html><?}?>------------------------------------------------------------------------------------------------------------------------------------------------ Página msnlistgrab.php <?php /**************************************************************************************** * MSN CONTACT LIST GRAB CLASS * * ©2005 Ghulam Mustafa, mustafa.pk@gmail.com, Pakistan * * ver 1.0 (04.02.2005) * ****************************************************************************************/ class msnlistgrab { var $user; var $password; var $server ='messenger.hotmail.com'; var $port = 1863; var $version = 'MSNMSGR 6.2'; var $buffer; var $socket; var $startcom; var $error = ""; function msnlistgrab() { } function GetRecords(){ if ($this->msn_connect($this->server, $this->port)){ return $this->res; } else{ return $this->error; } } function getData() { $this->buffer=""; while (!feof($this->socket)) { $this->buffer .= fread($this->socket,1024); if (preg_match("/\r/",$this->buffer)) { break; } } $this->checkData($this->buffer); } function getData2() {; //$container=""; $buffer=""; while (!feof($this->socket)) { if ($this->i>1) { if ($this->i==$this->total) { fclose($this->socket); $this->res; break; } } $buffer = fread($this->socket,8192); $this->check_buffer($buffer); } } function check_buffer($buffer) { if (eregi("^SYN",$buffer)) { list($junk, $junk, $junk, $this->total) = explode(" ", $buffer); // echo '<h1>Number of Records: '.$this->total.'</h1>'; } $this->grabber($buffer); } function grabber ($buffer) { $g = preg_split("/[\n]+/", $buffer); for ($n=0;$n<count($g);$n++) { if (strstr($g[$n], 'LST')) { $this->i++; //echo $i.','; list($junk, $email) = explode(" ", $g[$n]); $this->res[] = $email; } } } function checkData($buffer) { // echo $buffer; if (preg_match("/lc\=(.+?)/Ui",$buffer,$matches)) { $this->challenge = "lc=" . $matches[1]; } if (preg_match("/(XFR 3 NS )([0-9\.\:]+?) (.*) ([0-9\.\:]+?)/is",$buffer,$matches)) { $split = explode(":",$matches[2]); $this->startcom = 1; $this->msn_connect($split[0],$split[1]); } if (preg_match("/tpf\=([a-zA-Z0-9]+?)/Ui",$buffer,$matches)) { $this->nexus_connect($matches[1]); } /* $split = explode("\n",$buffer); for ($i=0;$i<count($split);$i++) { $detail = explode(" ",$split[$i]); if ($detail[0] == "LST") { //echo "<div OnMouseOver=\"style.cursor='hand';showTooltip('show','$detail[1]-$detail[3]')\" OnMouseMove=\"followTooltip('show')\" OnMouseOut=\"showTooltip('hide')\">" . urldecode($detail[2]) . "</div>"; } } */ } function msn_connect($server, $port) { if (IsSet($this->socket)) { fclose($this->socket); } $this->socket = fsockopen($server,$port); //stream_set_timeout($GLOBALS["socket"], 20000); if (!$this->socket) { return "Falha na conexão com o servidor."; } else { $this->startcom++; $this->send_command("VER " . $this->startcom . " MSNP8 CVR0",1); $this->send_command("CVR " . $this->startcom . " 0x0409 win 4.10 i386 ". $this->version ." MSMSGS " . $this->user,1); $this->send_command("USR " . $this->startcom . " TWN I " . $this->user,1); } } function send_command($command) { $this->startcom++; // echo "<font color=blue> >> $command<br>"; fwrite($this->socket,$command . "\r\n"); $this->getData(); } function nexus_connect($tpf) { $arr[] = "GET /rdr/pprdr.asp HTTP/1.0\r\n\r\n"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://nexus.passport.com:443/rdr/pprdr.asp"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_VERBOSE, 0); curl_setopt($curl, CURLOPT_HEADER,1); curl_setopt($curl, CURLOPT_HTTPHEADER, $arr); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); $data = curl_exec($curl); curl_close($curl); preg_match("/DALogin=(.+?),/",$data,$matches); //$data = str_replace("\n","<br>",$data); // echo $data; //echo "<br><br>"; $split = explode("/",$matches[1]); $headers[0] = "GET /$split[1] HTTP/1.1\r\n"; $headers[1] = "Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=" . str_replace("@","%40",$this->user) . ",pwd=" . $this->password . ", " . trim($this->challenge) . "\r\n"; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://" . $split[0] . ":443/". $split[1]); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_VERBOSE, 0); curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_HEADER,1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); $data = curl_exec($curl); //$data = str_replace("\n","<br>\n",$data); // echo $data; curl_close($curl); //echo "</font>"; preg_match("/t=(.+?)'/",$data,$matches); $this->send_command("USR " . $this->startcom . " TWN S t=" . trim($matches[1]) . "",2); $this->send_command("SYN " . $this->startcom . " 0",2); $this->getData2(); }}//end of the file?> Compartilhar este post Link para o post Compartilhar em outros sites
crucifier 0 Denunciar post Postado Maio 2, 2007 Mata Hary, procure colocar as tags CODE em seus códigos, para melhor visualização dos usuários! Compartilhar este post Link para o post Compartilhar em outros sites