Foros del Web » Programando para Internet » PHP »

Antes llegaban con mail() y ya no

Estas en el tema de Antes llegaban con mail() y ya no en el foro de PHP en Foros del Web. Antes que nada y como verán es el primer post que realizo aquí. No soy nuevo en PHP, sino que es la primera vez que ...
  #1 (permalink)  
Antiguo 10/08/2010, 08:12
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Desacuerdo Antes llegaban con mail() y ya no

Antes que nada y como verán es el primer post que realizo aquí. No soy nuevo en PHP, sino que es la primera vez que no encuentro la solución en las páginas sagradas de SAN GOOGLE, a ver si pueden ayudarme.

Mi caso:
Acabe un proyecto de una web que enviaba correctamente un email a sus usuarios.
Este llegaba correctamente tanto a gmail como a hotmail y otros sin problemas, pero hace unos días me reportaron quienes me contrataron que la web esa parte había dejado de funcionar. Efectivamente tras comprobarlo, no llegaban.
Tampoco estaban en correo no deseado como imaginé.

Ya he probado con varias formas de mail() y cambiado los headers, también con phpmailer, con smtp y sin él... y más de lo mismo dice que lo envía pero no aparece.

¿Puede deberse a alguna configuración del servidor? Lo cierto es que no sé que falla y eso es lo que más me

Pongo el código que usaba anteriormente, quitando ciertos datos, pero verán que es un mail() de toda la vida.

Código PHP:

$nombre_origen
"*****";
$email_origen"*****";
$email_destino"*****";
$asunto "*****";            
            
$mensaje "<b>Esto es un Mensaje</b><br>';

$headers  = "
From: ***** rn";
$headers .= "
Return-Path: <$email_origenrn";
$headers .= "
Reply-To$email_origen rn";
$headers .= "
X-Sender$email_origen rn";
$headers .= "
X-MailerPHP/". phpversion() ."rn";
$headers .= "
X-Priority3 rn";
$headers .= "
MIME-Version1.0 rn";
$headers .= "
Disposition-Notification-To"$nombre_origen\" <$email_origen> \r\n"
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n"
            
if (@
mail($email_destino$asunto$mensaje$headers))
    echo
'entro'
Un saludo y si tienen alguna idea de que puede fallar muchas gracias
Se que los "\r\n" salen en el código como rn pero estan puestas las barras
  #2 (permalink)  
Antiguo 10/08/2010, 08:59
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Antes llegaban con mail() y ya no

Deberías quitar la @

del mail pues eso muchas veces impide que se ejecute el código.

o cual es la finalidad de ponerle @
?

Marca algún error?

Saludos
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #3 (permalink)  
Antiguo 11/08/2010, 04:01
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Antes llegaban con mail() y ya no

la @ es para evitar que marcase un error en caso de haberlo.
Probé quitándolo por si había un error y continuaba, pero sigue igual, supuestamente se envian pero no llegan realmente.

Gracias por contestar. Me da que me voy a quedar sin saber que ocurre aquí. Habrá que investigar o seguir cambiando el método.

...Quizás los headers...

Saludos ^^

===========================================

Acabo de comprobar que funciona bien el codigo porque probe en un servidor diferente y funciona.
Solo me falla en este servidor y antes no era asi. Si alguien sabe que debo cambiar o a que se debe esto agradeceria su comentario.

Última edición por IEKK; 11/08/2010 a las 05:01
  #4 (permalink)  
Antiguo 11/08/2010, 05:45
Avatar de xhiena  
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 34
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Antes llegaban con mail() y ya no

$mensaje = "<b>Esto es un Mensaje</b><br>'; <---- Comillas de cierre mal puestas

$headers .= "Disposition-Notification-To: "$nombre_origen\" <$email_origen> \r\n"; <--- no estas concatenando (usa el .):
$headers .= "Disposition-Notification-To: ".$nombre_origen." <$email_origen> \r\n";

Prueba simplemente a enviarlo con la cabecera FROM
  #5 (permalink)  
Antiguo 11/08/2010, 10:05
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Antes llegaban con mail() y ya no

Verificaste que en tu server la función mail() sigue habilitada?

Saludos
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #6 (permalink)  
Antiguo 11/08/2010, 14:24
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Antes llegaban con mail() y ya no

Cita:
Iniciado por xhiena Ver Mensaje
$mensaje = "<b>Esto es un Mensaje</b><br>'; <---- Comillas de cierre mal puestas

$headers .= "Disposition-Notification-To: "$nombre_origen\" <$email_origen> \r\n"; <--- no estas concatenando (usa el .):
$headers .= "Disposition-Notification-To: ".$nombre_origen." <$email_origen> \r\n";

Prueba simplemente a enviarlo con la cabecera FROM
La comilla mal cerrada fue porque modifique el código al ponerlo aquí. Un error por mi parte.
No hace falta concatenar la variable así paraque entre correctamente pero igual lo cambio para que sea más legible y para prevenir, ya no m fio de nada.
Ya había probado sólo usando el FROM

KrowMx De seguro es ese el problema, aunque no entiendo porque al montar la web iba perfecto y después no. ¿El servidor puede cambiar habilitando o quitando funciones sin previo aviso?. Nunca había visto algo así.

Solucionado. Ya otro usuario en este foro comentó que tenía el mismo problema con el mismo servidor (piensasolutions). Es algo del %&$# servidor.
Gracias a todos por sus respuestas. Un saludo.

Última edición por IEKK; 11/08/2010 a las 15:43

Etiquetas: mail
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 18:50.