Foros del Web » Programando para Internet » PHP »

De donde sale este "nobody" al enviar un mail?????

Estas en el tema de De donde sale este "nobody" al enviar un mail????? en el foro de PHP en Foros del Web. Hola a todos: tengo un problemilla que no se como afrontar. Estoy enviando mails con PHP y todo funciona correctamente cuando el usuario solicita cierta ...
  #1 (permalink)  
Antiguo 07/05/2003, 05:57
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta De donde sale este "nobody" al enviar un mail?????

Hola a todos:

tengo un problemilla que no se como afrontar.

Estoy enviando mails con PHP y todo funciona correctamente cuando el usuario solicita cierta informacion y se le envia a la direccion de correo indicada: los valores "De" y "Asunto" son los que indico.

El problema esta al enviar el usuario a la cuenta de correo de la pagina alguna consulta, comentario... lo que sea. Entonces se recibe un mail en la cuenta de la pagina cuyo campo "De" es Nobody en lugar de el nombre y/o direccion de la persona que envia ese correo. Se supone que esa información se la indico directamente, y eso es lo que no comprendo. Ademas, tiene una direccion especifica de correo. Supongo que tiene que ver con la gestion de envio de ese mail, pero soy profana en el tema.

Os adjunto el fragmento de codigo:


<?php

$snombre=$HTTP_POST_VARS["nombre"]; //persona
$sfrom=$HTTP_POST_VARS["mail"]; //mail
$sdestinatario="[email protected]"; //cuenta destino
$scomentarios=$HTTP_POST_VARS["comentarios"];//subject
$sheader="Mensaje de: ".$nombre."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
$headers .= "From: ".$snombre."(".$sfrom.") desde www.mipagina.com\r\n";
mail($sdestinatario,$sheader, $comentarios, $header);
?>


el codigo es un copy&paste modificado, asi que puede haber cosas poco claras o susceptibles de correccion. Si es asi, por favor, comentadlo

gracias con antelacion

saludos
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.


Última edición por sgafo; 07/05/2003 a las 06:00
  #2 (permalink)  
Antiguo 07/05/2003, 06:13
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Por lo pronto,

Faltan puntos en:
$sheader.="Mensaje de: ".$nombre."\nReply-To:".$sfrom."\n";
$sheader.=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader.=$sheader."Mime-Version: 1.0\n";
$sheader.=$sheader."Content-Type: text/html";

Además, date cuenta que a veces usas $snmbre y a veces $nombre. No sé si es intencional o por error. Lo mismo cn $header/$sheader y $comentarios/$scomentarios
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 07/05/2003, 06:23
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
Una cosa: explicame por favor para que sirven los .
¿concatenacion?

y otra: te juro por mis muertos que el contenido de "comentarios" llega correctamente, por eso ni me habia fijado en la "s" de mas
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #4 (permalink)  
Antiguo 07/05/2003, 06:34
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Exacto, los puntos son para concatenar.

En tu script, recibes una serie de variables (nombre, comentarios, mail...) y las asignas a svariables: snombre, scomentarios, sdestinatario...

Naturalmente, si usas $nombre después de definir $snombre, te seguirá funcionando. Pero si tratas $snombre y envías $nombre, estarás mandando lo que has recibido de la página anterior sin tratar.

En este caso puede que sea irrelevante, pero es aconsejable revisar las variables para usar lo que realmente queremos usar.
__________________
M a l d i t o F r i k i
  #5 (permalink)  
Antiguo 07/05/2003, 06:39
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
como ya he dicho, es un codigo copiado, asi que explicame una cosa:

$s... es una nomenclatura especifica o es capricho del programador?
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #6 (permalink)  
Antiguo 07/05/2003, 06:40
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Cita:
$s... es una nomenclatura especifica o es capricho del programador?
Es un capricho del programador
__________________
M a l d i t o F r i k i
  #7 (permalink)  
Antiguo 07/05/2003, 06:53
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
Sigue saliendo nobody...

¿podrias identificarme los argumentos? porque ahora me envia un mensaje con el campo $sheader repetido 6 veces, mas el campo $scomentarios

y otra cuestion:


$sheader.=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader.=$sheader."Mime-Version: 1.0\n";
$sheader.=$sheader."Content-Type: text/html";

¿es obligatorio para el correcto funcionamiento?
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #8 (permalink)  
Antiguo 07/05/2003, 12:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Código PHP:
$sheader.=$sheader."X-Mailer:PHP/".phpversion()."\n"
Ojo .. al concatenar usando .= .. eso así va junto y separado del nombre de la variable ...

Podrías repasar el tema de "concatenación" de cadenas (strings) en PHP:
http://www.php.net/manual/en/languag...ors.string.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 07/05/2003, 14:03
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
pues gracias cluster, pero sigo sin entender de donde sale el "Nobody"
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #10 (permalink)  
Antiguo 07/05/2003, 14:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
sgafo ...

¿Estas usando todas las cabeceras que pusistes en un principio con su "concatenación" correcta?

Te lo comento porqué en teroría .. el "nobody" es el nombre del usuario que tiene PHP en tu sistema .. Y tu "MTA" (el servicio que use tu servidor para enviar el mail() .. servidor SMTP normalmente ..) añade ese nombre de cuenta si no recibe una cabecera FROM: que le indique que debe usar esa.

Bueno, en el manual de PHP oficial tienes en la sección mail() un ejemplo completo con uso de cabeceras HTTP (casi todas) ...

A todo esto, en la definición de mail() tienes un parametro extra para definir ese valor:

Cita:
Example 390. Sending mail with extra headers and setting an additional command line parameter.
copy to clipboard
mail("[email protected]", "the subject", $message,
"From: [email protected]$SERVER_NAME", "[email protected]$SERVER_NAME ");
(fijate que dice que ese parámetro está habilitado desde PHP 4.2.3 en adelante .. revisa la versión de tu PHP)

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.
  #11 (permalink)  
Antiguo 07/05/2003, 14:32
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
Hola de nuevo Cluster:

las pruebas las hago directamente desde el sitio donde tengo la pagina, y para enviar una informacion a la cuenta del usuario que lo solicita, informa el from correctamente, y el codigo es el mismo, de ahi que no comprenda el problema de ahora.

Revisare los enlaces que me pasas... y volvere

gracias
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #12 (permalink)  
Antiguo 07/05/2003, 15:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Creo que el problema puede estar en estas dos lineas:
Código PHP:
$headers .= "From: ".$snombre."(".$sfrom.") desde [url]www.mipagina.com\r\n[/url]";
mail($sdestinatario,$sheader$comentarios$header); 
En primer lugar, que yo sepa los parametros de mail son destinatario, asunto, cuerpo del mensaje y cabeceras. Y a mi me parece que $sheader no es lo que tengo yo por asunto de un mensaje.

Segundo, $headers contiene la cabecera From. Y la sintaxis que usas para esa cabecera no se si sera correcta. Yo creo (no he revisado el RFC) que es:

From: texto libre que quieras que aparezca <[email protected]>

Quizas te aparece Nobody porque estas especificando mal esa cabecera. Prueba a poner solo:

From: [email protected]

Despues con:

From: soy fulanito <[email protected]>

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #13 (permalink)  
Antiguo 07/05/2003, 16:18
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
Hola Josemi:

paso a paso ¿vale?

<?php
$snombre=$HTTP_POST_VARS["nombre"]; //persona
$sfrom=$HTTP_POST_VARS["mail"]; //mail

$sdestinatario = "[email protected]"; //cuenta destino

$mensaje = $HTTP_POST_VARS["comentarios"];//subject

$header = "Mensaje de: ".$snombre."\nReply-To:".$sfrom.;
$header .= "X-Mailer:PHP/".phpversion()."\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/html";

$subject = "Mensaje desde www.mipagina.com";

mail($sdestinatario, $subject, $mensaje, $header);

?>

mensaje recibido:

De: Nobody
Para: [email protected]
Asunto: Mensaje desde www.mipagina.com
Fecha: 07/05/03 21:30

Mensaje de: sonia
Reply-To:[email protected]
X-Mailer:PHP/4.1.2
Mime-Version: 1.0
Content-Type: text/html

Prueba de envio

Si lo hago como me indicas solo pondria en el header la direccion de origen, y eso da error... (o quiza no te comprendi)
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #14 (permalink)  
Antiguo 07/05/2003, 16:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Esto no es una cabecera HTTP valida!!!
$header = "Mensaje de: ".$snombre."\nReply-To:".$sfrom.;

En tal caso sería:
Código PHP:
$header "FROM: ".$snombre."\nReply-To:".$sfrom.; 
Las cabeceras las define las RFC que correspondan como ya te comentó josemi ...No puedes poner lo que te "dé la gana" ...

Por eso, yo te remití al manual OFICIAL de PHP para que probases el ejemplo que está ahí y que usa la mayoría de cabeceras HTTP para mail ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #15 (permalink)  
Antiguo 07/05/2003, 17:00
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
Al fin comprendo...

lo de las RFC no se lo que es... y si que revise el link que me remitiste, pero asumi que

$header = "FROM: ".$snombre."\nReply-To:".$sfrom.;

no era una nomenclatura obligada, es decir, que yo ponia sustituir el texto entre "" por lo que me diese la gana (excepto el Reply, claro)

y si ademas añado que a veces, por acelerarme, leo entre lineas saltandome cosas como esta:

"Y tu "MTA" (el servicio que use tu servidor para enviar el mail() .. servidor SMTP normalmente ..) añade ese nombre de cuenta si no recibe una cabecera FROM: que le indique que debe usar esa.
"

pues comprendo que a veces perdais la paciencia...

mis disculpas y mi agradecimiento a todos...

y que sepais que mas o menos ya esta resuelto

saludos
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #16 (permalink)  
Antiguo 07/05/2003, 17:03
Avatar de juque  
Fecha de Ingreso: marzo-2002
Ubicación: Temuco, Chile
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Espero que sgafo finalmente haya encontrado la solución a su problema de cabecera.

Puedo aportar a esta discusión un humilde tips que puede ser una verdadera ASPIRINA para muchos dolores de cabeza.

si no sabes que viene en tus Super_arreglos, muestralos así.

Código PHP:
echo '<pre>';
var_dump($HTTP_POST_VARS);
echo 
'</pre>'
--jp

Última edición por juque; 07/05/2003 a las 17:15
  #17 (permalink)  
Antiguo 07/05/2003, 17:11
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
juque: ¿problema de cabecera o de "cabeza"? (porque menudo despiste cargo)

si, ya esta resuelto... y gracias por tu mal llamado humilde codigo...

saludos again
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #18 (permalink)  
Antiguo 07/05/2003, 17:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
y ... sgafo .. Cual era tu problema al final de todo?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #19 (permalink)  
Antiguo 07/05/2003, 17:22
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
pues el asumir que "from:" solo era un literal y no la forma correcta de definir una cabecera...

eso y la concatenacion...

por si sirve para futuros novatos como yo, os incluyo el codigo final

<?php
$nombre = $HTTP_POST_VARS["nombre"]; //persona
$from = $HTTP_POST_VARS["mail"]; //mail

$sdestinatario = "[email protected]"; //cuenta destino

$mensaje = $HTTP_POST_VARS["comentarios"];//subject

$header = "FROM: ".$from."\nReply-To:".$from."\n";
$header .= "X-Mailer:PHP/".phpversion()."\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/html";


$subject = "Mensaje desde www.mipagina.com";

mail($sdestinatario, $subject, $mensaje, $header);

?>

Nota: pongo $header = "FROM: ".$from."\nReply-To:".$from."\n";
en lugar de $header = "FROM: ".$name."\nReply-To:".$from."\n";
porque a continuacion de la variable name añade la misma "coletilla" que añadia al nobody; me explico

en lugar de SONIA retorna [email protected] (me abstengo de poner el xxxxxxxxx)

solucion: pongo $from y punto

si sabeis porque pasa esto y si se puede resolver, estupendo, sino, que se quede asi que tampoco me parece incorrecto

y gracias de nuevo por vuestra paciencia
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #20 (permalink)  
Antiguo 07/05/2003, 17:27
Avatar de juque  
Fecha de Ingreso: marzo-2002
Ubicación: Temuco, Chile
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
no quiero paracer conflictivo... pero tengo una 'espinita' con cluster.

Acabo de habiliar mi perfil en este sitio luego de muuuuuuuuuucho tiempo de andar en otros sitio de PHP.

Pues bien, el año pasado publiqué en un foro chileno (www.phpzone.cl) mi validador de RUT en PHP... pero hoy me he topado en este mismo foro con mi código ...
eso sí.... con la autoria de cluster (mi compatriota)....

Ahora sin ninguna mala onda!, ¿es TU código? .. ¿o adaptaste el mio?.

simplemente quiero saber NADA MAS.

mi validador está aquí :
http://www.geocities.com/juque/validarut/
__________________
~~
www.juque.cl
  #21 (permalink)  
Antiguo 07/05/2003, 17:29
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
juque: ¿por que no lo tratas en administracion o directamente con cluster?

es una sugerencia...
__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.

  #22 (permalink)  
Antiguo 07/05/2003, 17:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Josemi te explicó como solventar ese problema ..

Código PHP:
$header "FROM: ".$name." <".$from.">".."\nReply-To:".$from."\n"
La definición de la cabecera "FROM" tiene ese formato .. (en teoría ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #23 (permalink)  
Antiguo 07/05/2003, 17:36
 
Fecha de Ingreso: octubre-2001
Mensajes: 1.288
Antigüedad: 16 años, 1 mes
Puntos: 0
gracias, majo

lo pruebo

... y funciona!!!

pstpst!!! te sobra un .

__________________
"... era precisamente la fina hermosura del dolor humano... que al parecer sólo la música sabe expresar." - Cuentos imprescindibles, Anton Chéjov.


Última edición por sgafo; 07/05/2003 a las 17:42
  #24 (permalink)  
Antiguo 07/05/2003, 17:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
juque .. te contesto por privado ..

Pero te digo yá que el algoritmo de validación del RUT es fijo .. así que entre tu código y el mio puede ser parecido e incluso el mismo. Para eso es un algoritmo fijo ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #25 (permalink)  
Antiguo 07/05/2003, 17:40
Avatar de juque  
Fecha de Ingreso: marzo-2002
Ubicación: Temuco, Chile
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
estamos completamente de acuerdo que el algoritmo MOD 11 es el mismo.

espero tu 'privada' respuesta.

buenas!
__________________
~~
www.juque.cl
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 02:44.