Foros del Web » Programando para Internet » PHP »

Problemas con emvio de mail

Estas en el tema de Problemas con emvio de mail en el foro de PHP en Foros del Web. Hola estees mi primer post aqui. aver si me pueden ayudar los maestros de esta comunidad ya questado lellendo y veo que entienden bastante del ...
  #1 (permalink)  
Antiguo 19/12/2007, 07:51
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 11 meses
Puntos: 0
Problemas con emvio de mail

Hola estees mi primer post aqui.

aver si me pueden ayudar los maestros de esta comunidad ya questado lellendo y veo que entienden bastante del tema.

Tengo una tienda on-line en un servidor que es windows server, y la programacion es php.

Mi problema es que tanto al hacer una compra como al reguistrarse un usuario me sale este error:

Warning: mail() [function.mail]: SMTP server response: 551 User not local. Authentication required for relay in C:\Inetpub\wwwroot\tersat\html\tienda\frms\contrat ar.php on line 243

Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\tersat\html\tienda\frms\contrat ar.php:243) in C:\Inetpub\wwwroot\tersat\html\tienda\frms\contrat ar.php on line 246

------------------------------------------------------------------------------------------


el servidor necesita autenticacion para poder emviar los correos al usuario, y mi duda es como puedo hacer para que la programacion autentifique los correos de salida.

les dejo el php que yo creo que es donde posiblemente se tenga que modificar ya que yo no soy capaz.

Código PHP:
<?
 session_start
();
 include 
'../inc/config.php';
 include 
'../inc/conn.php';
 
 
$con = new Conn($db_host,$db_user,$db_pass,$db_name);
 
$q = new query($con);
 

if(
$_POST['enviar']=="si"){ //INSERTAR
    
$error false;
      
    foreach(
$_POST as $key => $value){
      if(
$key!="dni" && $key!="fax"){
       if(
$value==""){
        
$error=true;
        break; 
       }
      }
    } 


    if(!
$error){
        
$q->exec("SELECT * FROM usuarios WHERE user LIKE '".$_POST['user']."'");
        
$rc=$q->numrows;
        
        if(
$rc>0){
            
header('Location:../index.php?s=micuenta&est=e2');            
        } else {
           
        
           if(
strlen($_POST['pass']) < || strlen($_POST['pass']) > 8){
            
header('Location:../index.php?s=micuenta&est=e4');    
            exit();
           }
           
           if(!
eregi("[A-Z]",$_POST['pass']) || !ereg("[0-9]",$_POST['pass'])){ // Alfanumerico
            
header('Location:../index.php?s=micuenta&est=e4');    
            exit();
           }

            if(
$_POST['pass']!=$_POST['pass2']){
               
header('Location:../index.php?s=micuenta&est=e3');    
            } else {
              
              
$ins = new insert('usuarios',$con);
              foreach(
$_POST as $key => $value){
               
$ins->col[$key] = $value;
              }
              
$ins->col['fecha'] = date('y-m-d',time());           
              
$ins->update();
             
              
$body='
              Estimado '
.$_POST['nombre'].',

              Le damos la bienvenida a $site_url.
                
              Ahora puede disfrutar de los servicios que le ofrecemos. Algunos de estos servicios son:
                
              # Carrito Permanente - Cualquier producto añadido a su carrito permanecera en el hasta que lo elimine, o hasta que realice la compra.
              # Historia de Pedidos - Vea la relacion de compras que ha realizado con nosotros.
              # Comentarios - Comparta su opinion sobre los productos con otros clientes.
                
              Para cualquier consulta sobre nuestros servicios, por favor escriba a: $admin_email
                
              Nota: Esta direccion fue suministrada por uno de nuestros clientes. Si usted no se ha suscrito como socio, por favor comuniquelo a $admin_email.
              '
;
             
              
mail($_POST['email_primario'], "Bienvenido $site_url",$body,"From:$site_url<".$admin_email.">\r\n");
              
header('Location:../index.php?s=micuenta&est=ok'); 
            }
        }
    } else {
        
header('Location:../index.php?s=micuenta&est=e1');
    }


}elseif(
$_POST['mod']=="si"){ // MODIFICAR  CLIENTE
    
   
     
$error false;
      
    foreach(
$_POST as $key => $value){
      if(
$key!="dni" && $key!="fax" && $key!="pass" && $key!="pass2"){
       if(
$value==""){
        
$error=true;
        break; 
       }
      }
    } 

    if(!
$error){
        
        if(
$_POST['pass']==""){
           unset(
$_POST['pass']);
        }else{         
          
               
          if(!
eregi("[A-Z]",$_POST['pass']) || !ereg("[0-9]",$_POST['pass'])){ // Alfanumerico
            
header('Location:../index.php?s=micuenta&est=e4'.$get_id);    
            exit();
          }
        }

            if(
$_POST['pass']!=$_POST['pass2']){
               
header('Location:../index.php?s=micuenta&est=e3'.$get_id);    
               exit();
            } else {
          
             

              
$upd = new doupdate('usuarios',$con,'id',$_POST['id']);
              foreach(
$_POST as $key => $value){
               
$upd->col[$key] = $value;
              }                                                     
              
$upd->update();
             
              
header('Location:../index.php?s=micuenta&est=ok'.$get_id); 
               
              
            }
       
    } else {
        
header('Location:../index.php?s=micuenta&est=e1'.$get_id);
    }


 

 

?>
  #2 (permalink)  
Antiguo 19/12/2007, 09:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Problemas con emvio de mail

Te recomiendo uses la clase PHPMailer, tiene métodos para autentificacion, ya que si quieres usar el comando mail() la única forma es editando el php.ini.

Saludos.
  #3 (permalink)  
Antiguo 19/12/2007, 10:48
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas con emvio de mail

gracias por la contestacion, el archivo "el php.ini" no esta dentro de mi programacion y como se pude inplantar el phpmailer dentro de la programacion.

gracias de nuevo
  #4 (permalink)  
Antiguo 19/12/2007, 10:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Problemas con emvio de mail

Te recomiendo busques en el foro o en Google, hay bastante información de la clase, ya que es de las mas usadas para enviar correo electrónico.

Saludos.
  #5 (permalink)  
Antiguo 20/12/2007, 07:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 31
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas con emvio de mail

Cita:
Iniciado por GatorV Ver Mensaje
Te recomiendo uses la clase PHPMailer, tiene métodos para autentificacion, ya que si quieres usar el comando mail() la única forma es editando el php.ini.

Saludos.

graciasa todos por la contestacion.

para editar el php.ini del servidor que tendria que modificar?
El servidor necesita autenticacion por narices para no llenarlo de spam. lo digo por si tu viera que modificarlo para que no pidiera autenticacion esa parte no me serviria.

felices fiestas.
  #6 (permalink)  
Antiguo 20/12/2007, 09:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Problemas con emvio de mail

Para editar el php.ini del servidor necesitas ver donde esta instalado PHP, y para eso necesitas permiso de administrador o root.

Saludos.
  #7 (permalink)  
Antiguo 20/12/2007, 09:26
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años, 6 meses
Puntos: 4
Re: Problemas con emvio de mail

http://phpmailer.sourceforge.net Desde ahi puedes obtener el PHPMailer, ahi hay ejemplos y tutoriales... Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:27.