Foros del Web » Programando para Internet » PHP »

Envio automatico con la funcion mail

Estas en el tema de Envio automatico con la funcion mail en el foro de PHP en Foros del Web. Hola, Estoy automatizando un envio de emails a los usuarios de una BBDD y me encontrado con los siguientes problemas, no encuentro solución en google, ...
  #1 (permalink)  
Antiguo 24/04/2008, 06:31
 
Fecha de Ingreso: diciembre-2006
Mensajes: 82
Antigüedad: 17 años, 4 meses
Puntos: 0
Envio automatico con la funcion mail

Hola,
Estoy automatizando un envio de emails a los usuarios de una BBDD y me encontrado con los siguientes problemas, no encuentro solución en google, asi que espero que alguien me pueda ayudar:
1) Tengo una serie de plantillas para los cuerpos de los emails. En ellas accedo algunos campos de la BBDD y resulta que solo me coge estos datos cuando construyo la plantilla en cada iteración sobre la BBDD, no me deja poner la plantilla antes de las iteraciones o incluido en otro documento php. En código:

$consulta = "SELECT * FROM Participantes WHERE idProyecto='$idProyecto' AND idDestinatario='$idDestinatario'";
$resultado = mysql_query($consulta);
$res = mysql_fetch_array($resultado);
if ($res!=null){
do{
$cuerpo["bienvenida"]="Hola " .$res["Nombre"]. ": fdsa..";
$cuerpo["inicio"]="Hola de nuevo " .$res["Nombre"]. ": \nEl ...";
mail($res["Email"],"nn",$cuerpo[$tipoCorreo], "From:[email protected]");
}while ($res = mysql_fetch_array($resultado));


Si saco la declaracion del cuerpo fuera del buble no me reconoce $res["Nombre"], ¿sabeis como puedo solucionarlo? (que me lo reconozca y sacar la declaración fuera del bucle para que solo se declare una vez y no N veces)

2) Tratamiento de errores
Cuando envio un correo a una direccion que no existe, ¿como lo reconozco? He probado a mirar la cuenta de correo remitente ([email protected]) y no me devuelve nada. ¿sabéis como puedo reconocer correos fallidos?

Gracias
Dani
  #2 (permalink)  
Antiguo 24/04/2008, 09:50
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Re: Envio automatico con la funcion mail

- La unica forma para enviar correos masivos es como lo estas haciendo, sino ¿como vas asignar los valores dinamicamente ?.

- Debes indicar un Reply-To, entonces puedes (con la ayuda de algun script) reconocer los rebotados, errores o no existentes.
  #3 (permalink)  
Antiguo 24/04/2008, 10:40
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Re: Envio automatico con la funcion mail

Carga_Dan:
Los errores en los envios de correo se visualizan en detalle en los logs del servidor de correo que envia.
La configuracion del servidor de correo es crucial:
Se pueden configurar para que cuando un correo es detenido por razones de estar el servidor muy ocupado, se envie una notificacion al administrador del servidor la condicion del envio; algunas veces el correo es "botado" y pareciera que como desaparece, eso sucede cuando el servidor que envia no cumple los requisitos minimos de envio (Ejemplo: no tiene reverso de Ip); Los servidores de correo pueden estar configurados para intentar el envio, aun cuando el servidor de correo que debe recibir este fuera de servicio, por lo menos hasta 48 o 72 horas despues del envio inicial.
En fin es un tema tan interesante largo y complejo que considero que este foro debiera dedicar un sitio especial para ello y dentro de php.
No todos los servidores de correo combaten el SPAM de igual manera hay mucha variedad de estrategias para frenar el Spam.
Saludos
Franco
  #4 (permalink)  
Antiguo 25/04/2008, 06:41
 
Fecha de Ingreso: diciembre-2006
Mensajes: 82
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Envio automatico con la funcion mail

Hola,
Lo primero daros las gracias por la información, y la razón afranco, he estado buceando horas respecto a este tema y es muy largo, aunque interesante.
Ya añadi el reply-to y aun así no me rebotaban los correos inexistentes. Para comprobar si el reply-to surgia efecto, contestaba los correos recibidos en las direcciones existentes y si que contestaba correctamente a la dirección configurada. Con lo cual el reply-to parece que va bien.
Normalmente mi servidor siempre rebota los correos a direcciones inexistentes (lo cual me hace pensar que lo que falla es el programa y no la configuración del servidor), aun así he mirado el servidor (mediante plesk y putty), he realizado varios cambios pero no he conseguido nada. Tampoco he visto nada en los logs de error.
Ahora mismo estoy perdido, con lo que os he contado... ¿creeis que el error esta en la configuración del servidor o en el programa? ¿alguien sabe por donde puedo tirar? ...

Gracias, Dani
PD: Cuando encuentre solución (¡que lo haré!) lo posteare
  #5 (permalink)  
Antiguo 28/04/2008, 06:05
 
Fecha de Ingreso: diciembre-2006
Mensajes: 82
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Envio automatico con la funcion mail

Hola a todos,
Bueno, lo prometido es deuda, dije que cuando lo resolviese lo postearia, asi que alla voy: Resulta que el servidor-por lo menos el mio- no hace caso a lo del from y el reply-to de la función mail, asi que hay que poner estas sentencias antes de ejecutar dicha función para que te responda los emails rebotados a las direcciones inexistentes, si no lo haces te los devuelve a una cuenta oculta llamada anonimous a la que no se puede acceder -yo por lo menos-.

Las sentencias a poner son las siguientes:
putenv ("QMAILUSER=xxx");
putenv ("[email protected]");
putenv ("QMAILHOST=yyy.com");

Información obtenida de http://kb.parallels.com/en/1251

Bueno, gracias por todo y espero que esto le pueda servir a alguien alguna vez
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:58.