Foros del Web » Programando para Internet » PHP »

Avisos por email

Estas en el tema de Avisos por email en el foro de PHP en Foros del Web. Hola Estoy buscando en google algún tipo de script, cgi, etc. que me envíe periodicamente un email a determinados clientes pero no encuentro nada. Lo ...
  #1 (permalink)  
Antiguo 25/07/2005, 03:54
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Avisos por email

Hola

Estoy buscando en google algún tipo de script, cgi, etc. que me envíe periodicamente un email a determinados clientes pero no encuentro nada.

Lo que necesito es algo tipo a los avisos por email de que el dominio te vence.. Es decir, que cuando se de una fecha determinada en db mysql un cliente reciba un email avisandole de algo.

No se si alguien sabrá donde puedo encontrar algo que se asemeje a esta función o que pueda adaptarlo (no muchas modificciones ya que mis conocimientos son mas bien pocos).

Gracias
  #2 (permalink)  
Antiguo 25/07/2005, 07:31
 
Fecha de Ingreso: mayo-2003
Mensajes: 148
Antigüedad: 14 años, 6 meses
Puntos: 0
Algo así que se me ocurre es:


/*Formato de Fecha sería (10-10-2000) por ejemplo, ya eso lo modificas
a tu gusto con la función date()*/

$fecha_actual = date ("d-m-Y");

// En el select haces la consulta, correo es el campo que guarda las direcciones
de email

$resultado=mysql_query ("select correo from tabla where vecimiento=$fecha_actual", $conexion);

// Enviamos los correos

while ($row=mysql_fech_array ($resultado)){
mail ("$row['email']","Asunto","Cuerpo del Correo");
}

Me he saltado la parte de la conexion a la BD y demás que supongo que sabrás como vá. Tb. esto lo manda uno a uno los correos, puedes hacer un array y enviarlos todos a la vez en el mismo correo, pero eso lo dejo ya para tí que toi cansao, ajajja.

Venga espero que te sirva, saludos.
  #3 (permalink)  
Antiguo 26/07/2005, 02:07
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Gracias,

Voy a ver si lo hago funcionar con tu ayuda.

Un Saludo
  #4 (permalink)  
Antiguo 26/07/2005, 13:34
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Gracias por tu ayuda.. Ya lo tengo casi funcionando.

He hecho:

<?php
// Fecha
$fecha_actual = date ("Y-m-d");
//Conexion
$link = mysql_connect("localhost", "uid", "pass");
mysql_select_db("tabla", $link);
$result = mysql_query("SELECT campo1, campo2, campo3, campo4 FROM $variable1 WHERE vencimiento LIKE '$fecha_actual'", $link);
if ($row = mysql_fetch_array($result)){

..................
.................
..................
...........
mail ("$variable5","$subject","$body");

PROBLEMAS:

1. Solo manda 1 email.. Es decir aunque los resultados de la conexión a la db encuentre mas de 1 resultado solo se manda 1 email con el primer resultado a la dirección de correo.

2. A pesar de que he añadido las siguientes lineas antes de la función mail:

$email_header = "Nombre <[email protected]>\n";
$email_header .= "X-Sender: <[email protected]>\n";
$email_header .= "Return-Path: <[email protected]>\n";

En el campo De: no me aparecen datos.

Espero que alguien pueda ayudarme en estos problemillas.

Gracias
  #5 (permalink)  
Antiguo 26/07/2005, 13:51
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 13 años, 11 meses
Puntos: 2
Deberías de usar un foreach() cuando son más de un correo a los q debes enviar
Código PHP:
$consulta "SELECT campo1,campo2,campo3 FROM $variable1 WHERE vencimiento LIKE '".$fecha_actual."'";
$q mysql_db_query($consulta,$link) or die($consulta."<br>".mysql_error());
$conteo mysql_num_row($q);
if(
$conteo 1){
foreach(
$row mysql_fetch_array($q)){
mail ("$row['direccion_de_correo']","$subject","$body");
}
}else{
$row mysql_fetch_array($q);
mail ("$row['direccion_de_correo']","$subject","$body");

En donde 'direccion_de_correo' es el nombre del campo de tu DB q contenga la dirección de correo electronico.
En cuanto a tu segunda consulta, no te aparece porq, primer debes de agregar
$email_header = "From: tu_direccion_de_correo";
Segundo, debes de agregarlo al script
mail ("$row['direccion_de_correo']","$subject","$body","$email_header");
Saludos cuidate
__________________
Dios dira que esto no es justo, pero lo sera...
  #6 (permalink)  
Antiguo 26/07/2005, 14:00
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
Gracias, el tema del from: ha quedado resuelto.

Respecto a lo de enviar varios email.

No es exactamente que se envíen correo a varias cuentas de correo.. Solo se envía a 1 dirección de correo definida en un include.

Es decir, se envían varios email (dependiendo de los resultados de la consulta de la db) pero todos a una misma dirección de correo (que no se encuentra en la db).

Gracias de nuevo.
  #7 (permalink)  
Antiguo 27/07/2005, 04:48
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
No acaba de funcionar...

Me esta dando un error:

Parse error: parse error in ..... on line 36

En esta linea está el foreach:

foreach($row = mysql_fetch_array($q)){

No tengo ni idean donde de donde viene el problema pero no acaba de funcionar.

Gracias
  #8 (permalink)  
Antiguo 27/07/2005, 05:10
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
No puedes hacer eso!!!! : menos usando mysql_fetch_array()... ésta función asigna índices numéricos Y asociativos, entonces tendrías "una matríz doble" --datos duplicados--... en todo caso mejor usar mysql_fetch_row() ó mysql_fetch_assoc() pero OJO que la matríz resultante correspondería a UNA FILA con los CAMPOS como índices... no creo que sea lo que necesitas... ah! y debe ser foreach($matriz as $indice => $valor) donde $valor puede ser opcional...

www.php.net/foreach

... Ok... quieres mandar tantos correos como registros. Tu código inicial (el de los puntitos) ¿por qué no lo muestras BIEN?, ¿dónde cierra la llave??...
Código PHP:
// conectas consultas y demás
while($row=mysql_fetch_assoc($consulta)) {
      
// supongo construyes el cuerpo del correo?
      
mail("[email protected]""Asunto"$cuerpo); // $cabeceras... etc

Ve que la función esta dentro del ciclo que se ejecutará TANTOS REGISTROS DEVUELVA LA CONSULTA. El correo será el mismo... ... ... etc.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #9 (permalink)  
Antiguo 27/07/2005, 06:24
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 12 años, 4 meses
Puntos: 0
¡Perfecto!!

Resuelto, muchas gracias
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 23:20.