Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/08/2006, 08:44
Avatar de sjam7
sjam7
 
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
ok, intente lo que me comentas al final pero me da este error:

Parse error: parse error, unexpected T_INCLUDE in D:\Domains\creandowebs.com\wwwroot\itto\contact.ph p on line 7

El archivo class.smtp.inc es este:
Código PHP:
<?php
    define
('SMTP_STATUS_NOT_CONNECTED'1TRUE);
    
define('SMTP_STATUS_CONNECTED'2TRUE);

    class 
smtp{

        var 
$authenticated;
        var 
$connection;
        var 
$recipients;
        var 
$headers;
        var 
$timeout;
        var 
$errors;
        var 
$status;
        var 
$body;
        var 
$from;
        var 
$host;
        var 
$port;
        var 
$helo;
        var 
$auth;
        var 
$user;
        var 
$pass;


        function 
smtp($params = array()){

            if(!
defined('CRLF'))
                
define('CRLF'"\r\n"TRUE);

            
$this->authenticated    FALSE;            
            
$this->timeout            5;
            
$this->status            SMTP_STATUS_NOT_CONNECTED;
            
$this->host                'localhost';
            
$this->port                25;
            
$this->helo                'localhost';
            
$this->auth                FALSE;
            
$this->user                '';
            
$this->pass                '';
            
$this->errors           = array();

            foreach(
$params as $key => $value){
                
$this->$key $value;
            }
        }


        function &
connect($params = array()){

            if(!isset(
$this->status)){
                
$obj = new smtp($params);
                if(
$obj->connect()){
                    
$obj->status SMTP_STATUS_CONNECTED;
                }

                return 
$obj;

            }else{
                
$this->connection fsockopen($this->host$this->port$errno$errstr$this->timeout);
                
//if(function_exists('socket_set_timeout')){
                //    socket_set_timeout($this->connection, 5, 0);
                //}

                
$greeting $this->get_data();
                if(
is_resource($this->connection)){
                    return 
$this->auth $this->ehlo() : $this->helo();
                }else{
                    
$this->errors[] = 'Failed to connect to server: '.$errstr;
                    return 
FALSE;
                }
            }
        }


        function 
send($params = array()){

            foreach(
$params as $key => $value){
                
$this->set($key$value);
            }

            if(
$this->is_connected()){

                
// Do we auth or not? Note the distinction between the auth variable and auth() function
                
if($this->auth AND !$this->authenticated){
                    if(!
$this->auth())
                        return 
FALSE;
                }

                
$this->mail($this->from);
                if(
is_array($this->recipients))
                    foreach(
$this->recipients as $value)
                        
$this->rcpt($value);
                else
                    
$this->rcpt($this->recipients);

                if(!
$this->data())
                    return 
FALSE;

                
// Transparency
                
$headers str_replace(CRLF.'.'CRLF.'..'trim(implode(CRLF$this->headers)));
                
$body    str_replace(CRLF.'.'CRLF.'..'$this->body);
                
$body    $body[0] == '.' '.'.$body $body;

                
$this->send_data($headers);
                
$this->send_data('');
                
$this->send_data($body);
                
$this->send_data('.');

                
$result = (substr(trim($this->get_data()), 03) === '250');
                
//$this->rset();
                
return $result;
            }else{
                
$this->errors[] = 'Not connected!';
                return 
FALSE;
            }
        }
        

        function 
helo(){
            if(
is_resource($this->connection)
                    AND 
$this->send_data('HELO '.$this->helo)
                    AND 
substr(trim($error $this->get_data()), 03) === '250' ){

                return 
TRUE;

            }else{
                
$this->errors[] = 'HELO command failed, output: ' trim(substr(trim($error),3));
                return 
FALSE;
            }
        }
        

        function 
ehlo(){
            if(
is_resource($this->connection)
                    AND 
$this->send_data('EHLO '.$this->helo)
                    AND 
substr(trim($error $this->get_data()), 03) === '250' ){

                return 
TRUE;

            }else{
                
$this->errors[] = 'EHLO command failed, output: ' trim(substr(trim($error),3));
                return 
FALSE;
            }
        }
        

        function 
rset(){
            if(
is_resource($this->connection)
                    AND 
$this->send_data('RSET')
                    AND 
substr(trim($error $this->get_data()), 03) === '250' ){

                return 
TRUE;

            }else{
                
$this->errors[] = 'RSET command failed, output: ' trim(substr(trim($error),3));
                return 
FALSE;
            }
        }
        

        function 
quit(){
            if(
is_resource($this->connection)
                    AND 
$this->send_data('QUIT')
                    AND 
substr(trim($error $this->get_data()), 03) === '221' ){

                
fclose($this->connection);
                
$this->status SMTP_STATUS_NOT_CONNECTED;
                return 
TRUE;

            }else{
                
$this->errors[] = 'QUIT command failed, output: ' trim(substr(trim($error),3));
                return 
FALSE;
            }
        }
        

        function 
auth(){
            if(
is_resource($this->connection)
                    AND 
$this->send_data('AUTH LOGIN')
                    AND 
substr(trim($error $this->get_data()), 03) === '334'
                    
AND $this->send_data(base64_encode($this->user))            // Send username
                    
AND substr(trim($error $this->get_data()),0,3) === '334'
                    
AND $this->send_data(base64_encode($this->pass))            // Send password
                    
AND substr(trim($error $this->get_data()),0,3) === '235' ){

                
$this->authenticated TRUE;
                return 
TRUE;

            }else{
                
$this->errors[] = 'AUTH command failed: ' trim(substr(trim($error),3));
                return 
FALSE;
            }
        }

        
        function 
mail($from){

            if(
$this->is_connected()
                AND 
$this->send_data('MAIL FROM:<'.$from.'>')
                AND 
substr(trim($this->get_data()), 02) === '250' ){

                return 
TRUE;

            }else
                return 
FALSE;
        }

        
        function 
rcpt($to){

            if(
$this->is_connected()
                AND 
$this->send_data('RCPT TO:<'.$to.'>')
                AND 
substr(trim($error $this->get_data()), 02) === '25' ){

                return 
TRUE;

            }else{
                
$this->errors[] = trim(substr(trim($error), 3));
                return 
FALSE;
            }
        }


        function 
data(){

            if(
$this->is_connected()
                AND 
$this->send_data('DATA')
                AND 
substr(trim($error $this->get_data()), 03) === '354' ){
 
                return 
TRUE;

            }else{
                
$this->errors[] = trim(substr(trim($error), 3));
                return 
FALSE;
            }
        }


        function 
is_connected(){

            return (
is_resource($this->connection) AND ($this->status === SMTP_STATUS_CONNECTED));
        }


        function 
send_data($data){

            if(
is_resource($this->connection)){
                return 
fwrite($this->connection$data.CRLFstrlen($data)+2);
                
            }else
                return 
FALSE;
        }


        function &
get_data(){

            
$return '';
            
$line   '';
            
$loops  0;

            if(
is_resource($this->connection)){
                while((
strpos($returnCRLF) === FALSE OR substr($line,3,1) !== ' ') AND $loops 100){
                    
$line    fgets($this->connection512);
                    
$return .= $line;
                    
$loops++;
                }
                return 
$return;

            }else
                return 
FALSE;
        }

        
        function 
set($var$value){

            
$this->$var $value;
            return 
TRUE;
        }

    } 
// End of class
?>
Quite algunos comentarios por que el texto era muy grande, espero que siga siendo comprensible