Foros del Web » Programando para Internet » PHP »

Cabecera de mail

Estas en el tema de Cabecera de mail en el foro de PHP en Foros del Web. Hola a todos, soy un aprendiz de php, y buscando un código para enviar mails encontré el siguiente que funciona perfecto en mi servidor. El ...
  #1 (permalink)  
Antiguo 28/07/2006, 10:47
 
Fecha de Ingreso: marzo-2006
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 1
Cabecera de mail

Hola a todos, soy un aprendiz de php, y buscando un código para enviar mails encontré el siguiente que funciona perfecto en mi servidor. El único problema es que el remitente aparece como nobody. Sé que se tiene que incluir una cabecera para evitar esto, pero quiero saber dónde y cómo se debe colocar.

Código PHP:
<html>
    <head>
        <title>Escríbanos un E-mail</title>
    </head>
    <body bgcolor="#FFFFFF" text="#000000">
        <?php
            $message
="";
            
//---cabecera adicional
            
$cabeceras "From: $email\r\n";
            
//---Asunto del mensaje.
            
$mailsubject ="Envíenos un E-mail";
            
//---Cuerpo del mensaje.
            
$mailbody ="Los Datos del usuario:\n";
            if (isset(
$nombre))
            { 
                
$mailbody.="El nombre del usuario: ".$nombre."\n";
            }
            if (isset(
$email))
            {
                
$mailbody.="El correo electronico del usuario: ".$email."\n";
            }
            if (isset(
$pais))
            {
                
$mailbody.="El país del usuario: ".$pais."\n";
            }
            if (isset(
$mensaje))
            {
                
$mailbody.="El mensaje del usuario: ".$mensaje."\n";
            }
            
$mailbody.="";
            
//---Se envía un mensaje al administrador
            
$email="[email protected]";
            
//---El resultado se almacena en la variable $result.
            
$result =mail($email,$mailsubject,$mailbody);
            if (
$result)
            {
                
//---Si el mensaje se ha enviado con éxito.
                
echo "<p><h1><center>Gracias por su enviarnos su mensaje. Le estaremos respondiendo a la brevedad posible.</center></h1></p>";
            }
            else
            {
            
//---Si el mensaje no se ha enviado.
            
echo "<p><b>El mensaje no ha podido enviarse.</b></p>";
            }
        
?>
        
    </body>
</html>

Última edición por Cluster; 28/07/2006 a las 10:57
  #2 (permalink)  
Antiguo 28/07/2006, 10:56
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
Código PHP:
$result =mail($email,$mailsubject,$mailbody); 
cambiar por:
Código PHP:
$txtnom  "Juanito Perez";
$txtmail "[email protected]";
$from    "FROM: $txtnom < $txtmail >\n";
$result  mail($email,$mailsubject,$mailbody,$from); 
  #3 (permalink)  
Antiguo 28/07/2006, 11:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por .php
Código PHP:
$result =mail($email,$mailsubject,$mailbody); 
cambiar por:
Código PHP:
$txtnom  "Juanito Perez";
$txtmail "[email protected]";
$from    "FROM: $txtnom < $txtmail >\n";
$result  mail($email,$mailsubject,$mailbody,$from); 
No limites las "cabeceras" a sólo "from" ni llames a parámetro "cabeceras" de la función mail como "$from" .. Así más de uno se confundirá y "crerá" que el "4°" parámetro se usa para el "De".

Más cabeceras y ejemplos al respecto los tienen en la documentación oficial de PHP al respecto:

http://www.php.net/manual/en/function.mail.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 28/07/2006 a las 11:07
  #4 (permalink)  
Antiguo 28/07/2006, 11:05
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
ufff sorry, me equivoque con ese nombre de variable
era $de
Código PHP:
$de  "FROM: $txtnom < $txtmail >\n"
  #5 (permalink)  
Antiguo 28/07/2006, 11:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por .php
ufff sorry, me equivoque con ese nombre de variable
era $de
Código PHP:
$de  "FROM: $txtnom < $txtmail >\n"
No me entendistes ..

No se trata de si es $de o $from .. son $cabeceras!!!

El 4° parámetro de la función mail() define cabeceras .. separadas por salto de línea (\n) y son parte del protocolo SMTP y las definien las RFC's (documentos oficiales) correspondientes.

Vamos, .. que no se usa ese 4° parámetro para indicar el "FROM" sólo .. sino más cosas!.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 28/07/2006, 11:37
 
Fecha de Ingreso: marzo-2006
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 1
Ok, garcias por los comentarios pero el codigo

//---cabecera adicional
$cabeceras = "From: $email\r\n";

lo puse yo y esta incorrecto, no debería ir ahi, pero si no dónde y cómo: solo haciendo el cambio en en $result que indico .php? Gracias
  #7 (permalink)  
Antiguo 28/07/2006, 11:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si te fijas en la documentación de la función mail() (lo has visto? .. sería interesante que lo vieras!):

Código PHP:
$result =mail($email,$mailsubject,$mailbody,$cabeceras); 
Pero ese:
$email="[email protected]";

tendrá que estar antes de tu definición de: $cabecera="FROM: $email\r\n"

NO hablemos del "$result" sino del "parámetro" de la función mail() .. donde colocarlo o no ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 28/07/2006, 12:08
 
Fecha de Ingreso: marzo-2006
Mensajes: 5
Antigüedad: 18 años, 1 mes
Puntos: 1
Gracias Cluster, lo probaré y te aviso.
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:01.