Tema: arrays...
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/06/2003, 12:12
GuitarMan
 
Fecha de Ingreso: mayo-2002
Ubicación: Ecuador
Mensajes: 74
Antigüedad: 22 años
Puntos: 0
bueno... segun como dices... deberia de ir aunquesea un mail por mail... pero lastimosa mente no va ningunno :(

aca te coloco la funcion en donde uso la clase:

Código PHP:
function Adminsend($sub$text$htmltext$send

  global 
$admin$modul_name$prefix$adminmail$nukeurl
  include(
"header.php"); 
  
OpenTable(); 
  if (!isset(
$admin)) { 
    echo 
_new_accessdenied
    
CloseTable(); 
    return; 
  } 
     
  
cgiCenter(); 
  
cgiFontClass("Title"); 
  echo 
_new_admintitle
  
cgiFontClass(); 
  
cgiCenter(1); 
   
  
$query "INSERT ${prefix}_newsletter_send SET subject='".addslashes($sub)."', text='".addslashes($text)."', html='".addslashes($htmltext)."', send=NOW()"
  if(!
mysql_query($query)) 
  { 
    echo 
mysql_errno(). ": ".mysql_error(). "<br>"
    
CloseTable(); 
    return; 
  } 
   

    include(
'includes/class.smtp.inc'); 
    
/***************************************/ 
    
$params['host'] = 'localhost'
    
$params['port'] = 25;                     
    
$params['helo'] = exec('hostname'); 
    
$params['auth'] = TRUE;                 
    
$params['user'] = '[email protected]';         
    
$params['pass'] = 'clave';             
                
/***************************************/ 

  
$newsletterid mysql_insert_id(); 
  
$query "SELECT email, status, id, html FROM ${prefix}_newsletter WHERE status='2'"
  
$result mysql_query($query); 
  while (list (
$sendto$newstatus$subid$sendhow) = mysql_fetch_row($result)) 
  { 
/*      if ($sendhow == '1')  // Send as text 
    { */ 

    
echo "$sendto, "
    
$send_params['recipients']    = $sendto
    
$send_params['headers']        = array("From: $send""To: $sendto""Subject: $sub"); 
    
$send_params['body']        = "$text";                 
    
$send_params['from']        = "$send"
    
/***************************************/ 
//      mail("$sendto", stripslashes($sub), stripslashes(strip_tags($text)), "From: $send"); 
//    } 
       
    
$count++; 
    
$query "INSERT ${prefix}_newsletter_sendto SET userid='$subid', "
             
"newsletterid='$newsletterid', date=NOW()"
    if(!
mysql_query($query)) 
    { 
       echo 
mysql_errno(). ": ".mysql_error(). "<br>"
       
CloseTable(); 
       return; 
    }               
  } 
      
/***************************************/ 
    
if(is_object($smtp smtp::connect($params)) AND $smtp->send($send_params)){ 
        echo 
'Email sent successfully!'."\r\n\r\n"
        
print_r($smtp->errors); 
    }else{ 
        echo 
'Error sending mail'."\r\n\r\n"
        
print_r($smtp->errors); 
    } 
    
/***************************************/    
  
cgiCenter();   
  
cgiBR(2); 
  echo 
"$count "._new_ok
  
cgiBR(); 
  
cgiLinkM("index""admin"_new_clickhere); 
  
cgiCenter(1); 
  
CloseTable(); 
  include(
"footer.php"); 
         

Esta es la funcion que actualmente uso... las variables $sub, $text, $htmltext, $send son pasadas por un formulario en donde se defice el subject, el cuerpo del mail en texto y en html... y la variable $send que corresponde al correo del remitente del boletin... las variables son pasadas satisfactoriamente con el formulario...

como podras ver deje comentado la line if.. een donde condiciona a los que son html y texto... lo he dejado oviado con la intencion de confirmar si los mails son enviados a todos los usuarios...

aca esta el codigo del while...

Código PHP:
while (list ($sendto$newstatus$subid$sendhow) = mysql_fetch_row($result)) 
  { 
    echo 
"$sendto, "
    
$send_params['recipients']    = $sendto
    
$send_params['headers']        = array("From: $send""To: $sendto""Subject: $sub"); 
    
$send_params['body']        = "$text";                 
    
$send_params['from']        = "$send"

    
$count++; 
    
$query "INSERT ${prefix}_newsletter_sendto SET userid='$subid', "
             
"newsletterid='$newsletterid', date=NOW()"
    if(!
mysql_query($query)) 
    { 
       echo 
mysql_errno(). ": ".mysql_error(). "<br>"
       
CloseTable(); 
       return; 
    }               
  } 
como vez al final hace una cuenta para saber a cuantos usuarios le envia el boletin...

tambien encuentras este codigo...


Código PHP:
      /***************************************/ 
    
if(is_object($smtp smtp::connect($params)) AND $smtp->send($send_params)){ 
        echo 
'Email sent successfully!'."\r\n\r\n"
        
print_r($smtp->errors); 
    }else{ 
        echo 
'Error sending mail'."\r\n\r\n"
        
print_r($smtp->errors); 
    } 
    
/***************************************/ 
el cual es para confirmar que los mails han sido enviados...

la pagina de resuesta que me carga luego de enviar los mails... (supuestamente...) me mauestra...

Email sent successfully! Array ( )


298 ¡Boletin enviado!
¡Por favor, pulse aqui!


pero no es enviado ningun mail...

sobre lo que me decias de modificar el php.ini la verdad que poseo un plan de hosting compartido ... y no puedo hacceder a ello.. me gustaria tambien ver alguna forma de informarme si los mails quedan en cola en el sendmail... podria ser que esten en cola... pero como puedo saberlo??? como decia mi cuenta es de host compartido.. tengo acceso ssh pero no puedo acceder a consultar esto.. no tengo permisos :( ...

sobre lo que me decias de los arrays usando mysql_fetch_array en lugar de tu xxx_row() y el list() ... ... mmm... como seria esto... la verdad no soy uy experto programando... lo que hago es a punta de manuales y si sale es por obra y gracia divina je je je...

cualquier ayuda les agradeceria muchisimo :p

si alguien necesita la clase me lo hace saber y con gusto se la envio.


Atentamente

Un usuario en apuros :