Hola saludos!!...
  
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');
-*/
?>       Archivo llamado test.php  
 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']);
    }
}
 
?>    
  Alli esta todo lo que desarrolle, ahora necesito que los usuarios cuando coloque el correo y la contraseña y invite a sus contactos, todo ellos se me almacenen en una lista de correos para enviales propuestas, noticias etc.. a la pagina web. espero que me ayuden y les sirva mi codigos a varios de ustedes esta fino.