Foros del Web » Programando para Internet » PHP »

Newsletter solo en algunos mails

Estas en el tema de Newsletter solo en algunos mails en el foro de PHP en Foros del Web. Hola de nuevo, agradesco a cluster por el mensaje anterior sobre un pequeño problema, que ya se soluciono. Estoy desarrollando para una empresa un Newsletter ...
  #1 (permalink)  
Antiguo 16/04/2004, 19:33
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 14 años
Puntos: 0
Pregunta Newsletter solo en algunos mails

Hola de nuevo, agradesco a cluster por el mensaje anterior sobre un pequeño problema, que ya se soluciono. Estoy desarrollando para una empresa un Newsletter que me funciona de foma muy extraña, por que cuando se envian los mails que contiene noticias, algunos mails si lo reciben y otros no. Lo mas extraño es que Hotmail, Yahoo, Terra Mail, EsMas Mail, Todito Mail, ect si reciben los mails en formato HTML y si quiero en el formato normal (texto) tambien. Como mi problema no radica en el codigo ya que utilizo las cabeceras indicadas (supongo):

Este es el ejemplo que encontre en las FAQS (Gracias de el aprendi)

Código PHP:
$sfrom=""//cuenta que envia
$sdestinatario=""//cuenta destino
$ssubject=""//subject
$shtml=""//mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader); 
Mas adelante encontre una variante que me funciona junto con una plantilla que mando llamar. (Casi lo mismo)

Código PHP:
$headers "MIME-Version: 1.0\r\n";
    
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    
$headers .= "From: ".$_CONF['mail']."\r\n";
    
$headers .= "Bcc: ".$semail."\r\n";
    
$headers .= "X-Priority: 1\r\n";
    
$headers .= "X-MSMail-Priority: High\r\n";
    
$headers .= "X-Mailer: Just My Server"
Aclaro que la funcion mail la he encontrado en todas sus variantes y ya no me doy idea de que pasa.

Supongo que lo mas logico es que los servidores que reciben el Newsletter tienen una especie de filtro.

Por lo demas me funciona excelente mi codigo.

Para terminar mi ultimo recurso es que probe el codigo segun como se indica pasando las variables directamente con $_POST[''] y sin post.

Código PHP:
$destino=$destinomail;
$asunto=$asuntomail;
$texto=$textomail;
$remite=$nombre;
mail($destino$asunto$texto"From:$remite
    Reply-To: $remite
    Cc: $cco
    Bcc:$bco
    X-Mailer: PHP/" 
phpversion()); 
Como ya bote la toalla, y no se me ocurre donde esta la solucion, puede alguien decirme donde esta mi problema o que pretexto les digo a los de la empresa.

Pregunta tonta......bye
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
  #2 (permalink)  
Antiguo 17/04/2004, 10:21
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

La funcion mail() devuelve false si hubo algun error al pasar el mensaje al servidor SMTP saliente o a sendmail (Depende de la configuracion). Eso es lo primero que deberias comprobar.

Luego tampoco dices si envias los emails de uno en uno o dentro de un bucle (dices que es un newsletter). Hay hostings que limitan el numero de emails por hora que puedes enviar. Asi qeu si te pasas del numero deja de enviar.

Tambien podrias mirar en www.dnsstuff.com si tu IP o tu dominio estan en alguna lista de spammers. Supongo que no, pero por mirar no pasa nada.

Y luego hay miles de razones mas por las que un email puede no llegar a su destino.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 19/04/2004, 08:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si tienes acceso al servidor SMTP y ver sus log's .. revisalos. Lamentablemente PHP por su función mail() sólo indica si conectó con tu servidor SMTP o no lo hizo (como bien dice Josemi) ..

Algunas classes de envio de e-mail directo por SMTP como PHP mailer (http://phpmialer.sourceforge.net) "dicen" que podrían obtener los mensajes de error de tu servidor SMTP (que se producen igualmente) para determinar donde está el fallo (de que cuenta(s) y que error) .. pero, llevo tiempo usando dicha classe para enviar un pequeño mailing y "no se entera" o no me devuelve (tal vez no sepa como obtener dichos mensajes? ..) pero el caso es que tras el envio de los e-mails reviso los log's del servidor SMTP y veo cuentas que falla el envio por N motivos y PHP (aun con PHP mailer) dice "OK" ... al envio.

Cuando tengas la certeza que los e-mail son enviados (salen de tus servidores SMTP) ahí podrías empezar a ver otros temas como los que comenta Josemi.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 04:03.