Foros del Web » Programando para Internet » PHP »

Falla el envio de correo al incluir un punto

Estas en el tema de Falla el envio de correo al incluir un punto en el foro de PHP en Foros del Web. Hola a todos. He seguido algunos mensajes del foro y he conseguido que me funcione el envio de correo desde una web. Para ello he ...
  #1 (permalink)  
Antiguo 07/09/2011, 03:11
 
Fecha de Ingreso: mayo-2010
Ubicación: Madrid
Mensajes: 74
Antigüedad: 13 años, 11 meses
Puntos: 0
Falla el envio de correo al incluir un punto

Hola a todos.

He seguido algunos mensajes del foro y he conseguido que me funcione el envio de correo desde una web. Para ello he usado phpmailer. Pero he pasado un rato loco porque no conseguía averiguar a qué se debía que ciertos mensajes llegasen sin problemas y otros no. Bueno, el rato lo he pasado tratando de descubrir la razón pero aun no se como repararlo.

Al final he descubierto que basta con que incluya el caracter punto "." en cualquier parte del mensaje para que no se realice el envío, aunque recibo en pantalla el mensaje de que sí se envia.

El código utilizado es el siguiente:

Código PHP:
Ver original
  1. <?php
  2. require("class.phpmailer.php");
  3.  
  4. $mail = new PHPMailer();
  5.  
  6. $mail->IsSMTP();                                      // set mailer to use SMTP
  7. $mail->Host = "FHA-MAIL";  // specify main and backup server
  8. $mail->SMTPAuth = false;     // turn on SMTP authentication
  9.  
  10. $mail->From = "[email protected]";
  11. $mail->FromName = "WEB";
  12. $mail->AddAddress("[email protected]", "Josh Adams");
  13. $mail->WordWrap = 50;     // set word wrap to 50 characters
  14. $mail->IsHTML(true);                                  // set email format to HTML
  15.  
  16. $mail->Subject = "Sugerencia Medioambiental";
  17. $mail->Body    = "Esta sugerencia la hace un ".$categoria."\r"." Su sugerencia es ".$sugerencia."\r"." Su dirección de correo es ".$correo;
  18. $mail->AltBody = "Esta sugerencia la hace un ".$categoria."\r"." Su sugerencia es ".$sugerencia."\r"." Su dirección de correo es ".$correo;
  19.  
  20. if(!$mail->Send())
  21. {
  22.    echo "El Mensaje no se pudo enviar <p>";
  23.    echo "Error: " . $mail->ErrorInfo;
  24.    exit;
  25. }
  26.  
  27. echo "Mensaje correctamente enviado";
  28. ?>

La cuestión es que si en cualquier parte de la variable $sugerencia o en la $correo incluyo un punto el mensaje no llega aunque recibo en pantalla el mensaje "Mensaje correctamente enviado". ¿Se os ocurre a qué se debe?

También he notado que los comando de retorno de carro que incluyo en el cuerpo del mensaje no me están funcionando. ¿Alguien me sabe decir cómo puedo resolverlo?

Os agradezco la ayuda.
Un saludo
  #2 (permalink)  
Antiguo 07/09/2011, 04:08
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Falla el envio de correo al incluir un punto

Para lo del retorno de carro prueba "\n\r".

Lo otro, si te digo la verdad, me deja un poco roto. No entiendo qué puede estar pasando, no tiene mucho sentido.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 07/09/2011, 04:39
 
Fecha de Ingreso: mayo-2010
Ubicación: Madrid
Mensajes: 74
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Falla el envio de correo al incluir un punto

vgonga, gracias por responder.

No, tu propuesta no me ha funcionado.

He hecho otros cambios y no he solucionado nada. Ahora el código es este:

Código PHP:
Ver original
  1. <?php
  2. require("class.phpmailer.php");
  3. $texto = "Esta sugerencia la hace un ".$categoria."\n\r"." Su sugerencia es ".$sugerencia."\n\r"." Su dirección de correo es ".$correo;
  4.  
  5. $mail = new PHPMailer();
  6.  
  7. $mail->IsSMTP();                                      // set mailer to use SMTP
  8. $mail->Host = "CORREO";  // specify main and backup server
  9. $mail->SMTPAuth = false;     // turn on SMTP authentication
  10.  
  11. $mail->From = "[email protected]";
  12. $mail->FromName = "WEB";
  13. $mail->AddAddress("[email protected]", "Josh Adams");
  14. $mail->WordWrap = 50;     // set word wrap to 50 characters
  15. $mail->IsHTML(true);   // set email format to HTML
  16.  
  17. $mail->Subject = "Sugerencia Medioambiental";
  18. $mail->Body    = $texto;
  19.  
  20. if(!$mail->Send())
  21. {
  22.    echo "El mensaje no pudo ser enviado. <p>";
  23.    echo "Error: " . $mail->ErrorInfo;
  24.    exit;
  25. }
  26.  
  27. echo "Mensaje enviado correctamente";
  28. ?>
  29. </

Como véis dejo de crear la cadena del cuerpo dentro de $mail->Body y la creo fuera, luego sólo se la paso. Y nada.

También he probado a pasar un texto sin más, nada de concatenaciones ni gaitas, y en cuanto tiene un punto en la cadena el envío no se realiza pero tampoco da error alguno.

He probado con caracteres especiales y pasan todos los probados. Eso sí, las tíldes no pasan pero el mensaje sí se envía. Por ejemplo recibo correos con este texto:

Esta sugerencia !•$%&/()=@# la hace un Directivo Su sugerencia es Prueba nueva Su dirección de correo es

Como se vé me llegan bien los caracteres especiales y no la tílde.

¿Alguno sabe a qué se puede deber? Me preocupa enórmemente lo de la ausencia de envío por un simple punto, es que me parece tan normal lo de que tuviese que aceptar el punto que si no lo soluciono no podré poner en práctica este tema.
  #4 (permalink)  
Antiguo 07/09/2011, 06:09
 
Fecha de Ingreso: mayo-2010
Ubicación: Madrid
Mensajes: 74
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Falla el envio de correo al incluir un punto

He dado un paso más y tratando de ver posibilidades he pensado en que antes de hacer el envío por mail cambiar cada caracter punto "." por un punto y coma ";" y el envío se realiza sin problemas.

Lo he hecho con str_replace

Claro, que en vez de llegarme una dirección de correo válida me llega algo del tipo correo@correo;com, que para salir del paso cuela pero no.

Sólo se me ocurre que se trate de algo del juego de caracteres o que haya que tocar en el phpmailer. ¿Alguna idea?
  #5 (permalink)  
Antiguo 08/09/2011, 08:43
 
Fecha de Ingreso: mayo-2010
Ubicación: Madrid
Mensajes: 74
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Falla el envio de correo al incluir un punto

Le doy una subida a esto con la esperanza de que alguien sepa ayudarme, si no sale nadie no daré más guerra con esto.

¿Alguien sabe porqué razón al enviar los emails desde la web con el procedimiento que antes expuse las tíldes no se pasan bien en el mensaje?

Y lo que és más importante ¿alguien sabe porqué razón puede pasarme que en cuanto el carácter punto "." va en cualquier parte del mensaje el mensaje no se envía pero no genera tampoco error alguno y lo da por bien enviado?

Gracias por vuestro tiempo.

Etiquetas: correo, envio, falla, html, incluir, punto, variables
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 13:26.