Este trabajo es para una exposicion de paginas web de la universidad, ne esta quedando bien pero tengo este inconveniente, tengo los siguientes condigos para que cuando coloquen el correo y la contraseña el usuario o visitante, invite a sus contactos a la pagina que estoy haciendo.
Archivo llamado: index.php
Código PHP:
<?php
// ESTE ARCHIVO ES PARA LOS EMAIL MASIVOS.. (INVITACIONES DE HOTMAIL WEB MASTER DAVID TORRES-.)
error_reporting(E_ALL);
//-header('Content-Type: text/html; charset=UTF-8');
require('includes/phpListGrab.class.php');
//-readfile('templates/header.html');
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$phplistgrab = new phpListGrab($_POST['passport'], $_POST['password']);
$ret = $phplistgrab->grab();
if (!$ret)
{
switch ($phplistgrab->result)
{
case ERR_AUTHENTICATION_FAILED:
echo '<p>Authentication failed.</p>';
break;
case ERR_SERVER_UNAVAILABLE:
echo '<p>Failed to connect to server.</p>';
break;
}
//-readfile('templates/footer.html');
exit();
}
$indent = str_repeat("\t", 3); // Esto es sólo para hacer el formato HTML, bastante, el nivel de estos elementos es de 3 pestañas en.
//-echo "$indent<h3>Contacts</h3>\n\n$indent<ul>\n";
foreach ($phplistgrab->lists[LIST_FORWARD] as $contact)
{
$destinatario = $contact['passport'];
$QuienManda = $_POST['passport'];
$cuerpo = '<p align="center"><a href="http://WWW.TUPAGINA.COM/"><img src="../images/promocion/promo.jpg" border="0"></a></p>';
$retp = "[email protected]";
$asunto = "visita a WWW.TUPAGINA.COM";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Maracuchos <$QuienManda>\r\n";
$headers .= "Reply-To: $QuienManda\r\n";
$headers .= "Return-path: $retp\r\n";
mail($destinatario,$asunto,$cuerpo,$headers);
}
//-echo "$indent</ul>\n";
}
/*-else
{
readfile('templates/form.html');
}
readfile('templates/footer.html');
-*/
?>
Código PHP:
<?php
$QuienManda = $_POST['passport'];
echo $QuienManda;
?>
Archivo llamado: phpListGrab.class
Código PHP:
<?php
require('MSNPAuth.class.php');
define('ERR_AUTHENTICATION_FAILED', 911);
define('ERR_SERVER_UNAVAILABLE', 600);
define('OK', 0);
define('LIST_ALLOW', 'AL');
define('LIST_BLOCK', 'BL');
define('LIST_FORWARD', 'FL');
define('LIST_REVERSE', 'RL');
class phpListGrab
{
var $_passport = '';
var $_password = '';
var $result = 0;
var $lists = array(
LIST_ALLOW => array(),
LIST_BLOCK => array(),
LIST_FORWARD => array(),
LIST_REVERSE => array(),
);
var $_contacts = array();
var $_socket = NULL;
var $_lst_count = 0;
function phpListGrab($passport, $password)
{
$this->_passport = $passport;
$this->_password = $password;
}
function grab($server = 'messenger.hotmail.com')
{
$this->_socket = @fsockopen($server, 1863);
if (!$this->_socket)
{
$this->result = ERR_SERVER_UNAVAILABLE;
return false;
}
$this->_send('VER 0 MSNP8');
while (!feof($this->_socket))
{
$data = fgets($this->_socket);
$data = substr($data, 0, -2);
$ret = $this->_parse($data);
if (!$ret)
{
return $ret;
}
}
// Sort the lists into alphabetical order
usort($this->lists[LIST_REVERSE], array($this, '_cmp'));
usort($this->lists[LIST_FORWARD], array($this, '_cmp'));
usort($this->lists[LIST_ALLOW], array($this, '_cmp'));
usort($this->lists[LIST_BLOCK], array($this, '_cmp'));
return true;
}
function _send($data)
{
fputs($this->_socket, "$data\r\n");
}
function _parse($data)
{
$params = explode(' ', $data);
switch ($params[0])
{
case 'VER':
$this->_send('CVR 1 0x0409 winnt 5.1 i386 MSNMSGR 6.0.0254 MSMSGS '.$this->_passport);
break;
case 'CVR':
$this->_send('USR 2 TWN I '.$this->_passport);
break;
case 'XFR':
$subparams = explode(':', $params[3]);
return $this->grab($subparams[0]);
break;
case 'USR':
if ($params[2] == 'TWN')
{
$msnpauth = new MSNPAuth($this->_passport, $this->_password, $params[4]);
$hash = $msnpauth->getKey();
if (!$hash)
{
$this->result = ERR_AUTHENTICATION_FAILED;
$this->_send('OUT');
return false;
}
$this->_send('USR 3 TWN S '.$hash);
}
elseif ($params[2] == 'OK')
{
$this->_send('SYN 4 0');
}
break;
case 'SYN':
$this->_lst_count = $params[3];
break;
case 'LST':
$this->_lst_count--;
if (!isset($this->_contacts[$params[1]]))
{
$this->_contacts[$params[1]] = array(
'passport' => $params[1],
'friendlyname' => urldecode(utf8_decode($params[2])),
'lists' => $params[3],
'status' => 'FLN',
'clientid' => 0,
);
}
if (($params[3] & 2) > 0)
{
$this->lists[LIST_ALLOW][$params[1]] = &$this->_contacts[$params[1]];
}
if (($params[3] & 1) > 0)
{
$this->lists[LIST_FORWARD][$params[1]] = &$this->_contacts[$params[1]];
}
if (($params[3] & 4) > 0)
{
$this->lists[LIST_BLOCK][$params[1]] = &$this->_contacts[$params[1]];
}
if (($params[3] & 8) > 0)
{
$this->lists[LIST_REVERSE][$params[1]] = &$this->_contacts[$params[1]];
}
if ($this->_lst_count == 0)
{
$this->_send('OUT');
$this->result = OK;
}
break;
}
return true;
}
function _cmp($a, $b)
{
return strcasecmp($a['friendlyname'], $b['friendlyname']);
}
}
?>