Foros del Web » Programando para Internet » PHP »

listas de correo

Estas en el tema de listas de correo en el foro de PHP en Foros del Web. con un cambio de server, mi lista de correo dejo de funcionar, ya no envia alguien tendria o me podria indicar en donde puedo descargar ...
  #1 (permalink)  
Antiguo 14/02/2005, 19:49
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 21 años, 4 meses
Puntos: 0
listas de correo

con un cambio de server, mi lista de correo dejo de funcionar, ya no envia
alguien tendria o me podria indicar en donde puedo descargar un script de estos ?, los mail estan grabados en una base de datos.
muchas gracias
__________________
el chute
  #2 (permalink)  
Antiguo 15/02/2005, 14:14
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 21 años, 10 meses
Puntos: 6
A ver si entendi

Necesitas descargar los mails que tenes en una base ? te paso un ejemplo que hice pero para guardarlo en un CSV de excel, te va a ser mas facil manipular los datos. Esta documentado donde tenes que modificar

<?php

$user = "root"; #cambiar el propio
$pass = ""; #cambiar el propio
$host = "localhost"; #cambiar el propio
$db = "base" #cambiar el propio
$excel = ""; #NO TOCAR

mysql_connect($host,$user,$pass) or die ('error en conexion');;
mysql_select_db($db);

#mail es el campo de la tabla
#Tabla_Mails es el nombre de la tabla
$query = "SELECT mail FROM Tabla_Mails";

$result = mysql_query($query) or die ('error en query');

#Acumular los mails en $excel
while($row = mysql_fetch_array($result)){

$excel .= $row[0]."\n";
}

#genero el archivo CSV

$nomfile="archivo-". date("d-m-Y") . ".csv";
header("Expires: Mon, 26 Nov 1962 00:00:00 GMT");
header("Last-Modified: " . gmdate("D,d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Type: Application/x-vnd.msexcel");
header("Content-disposition: attachment; filename=$nomfile");
echo $excel;

?>


Suerte
  #3 (permalink)  
Antiguo 15/02/2005, 20:01
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 21 años, 4 meses
Puntos: 0
gracias

te agredesco, pero quizas no me explique bien
yo lo que necesito exactamente es poder enviar un e-mail a la lista de correo
(los mail estan guardados en una base)
osea escribir un formulario ( asunto y mensaje) y que al enviar, salga un correo para cada uno de los integrantes de esa lista.
con el formulario, no hay problema, es una tonteria, mi dificultad esta en crear un php que lea los mail de la base y envie un correo a cada uno de ellos.
igualmente, agradesco mucho tu tiempo
__________________
el chute
  #4 (permalink)  
Antiguo 15/02/2005, 21:21
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 21 años, 4 meses
Puntos: 0
mira

Mira, me pasaron este script, envia correo a toda la lista.
Lo malo es que no llega ni el remitente, ni el asunto ni el mensaje


***************************************
<?


include("../config.php") ;

$enviar = $_POST['enviar'];
echo "[................] $enviar<br>";// se puso esto para que no se ejecute solo
if(!empty($enviar) && $enviar == "Enviar")
{



$query = "select Email from Correos order by id" ;
$resp = mysql_query($query);
$totales = mysql_num_rows($resp) ;
$i = 0 ; $j = 0 ;
echo "Lista de mensajes enviados.";

while ($datos = mysql_fetch_array($resp)) {
$Email = $datos["Email"] ;



$bien = mail($Email,$asunto,$mensaje,"Content-Type:text/html; charset=iso-8859-15, From: $remitern,Reply-To: $remitern");
$i++ ;

echo "<br>$i - ";
if($bien){
echo "Mensaje para: $Email: <b>OK</b>";
} else {
echo "<font color=#FF0000><b>Mensaje fallido para: $Email</b></font>";
$j++ ;
}
}
$k = $i - $j ;
echo "<br><br>Enviados: $k de $totales <br><hr>" ;
if($i == $totales) {
echo "<b>Mensaje enviado:</b><br> $mensaje<br><hr> <br>Se ha completado el envío de los mensajes<br>
Total enviados: <b>$i</b><br><br>
<a href=javascript:history.back()>Volver a enviar otro mensaje</a><br>
<a href=index.php>Volver a la página principal</a>
";
}


} else {
?>
<form action="enviar.php" method="post" >
<blockquote>
Remitente:<br> <input name="$remitern" type="text" ><br><br>
Asunto:<br> <input name="asunto" type="text"><br><br>
Mensaje:<br> <textarea name="mensaje" cols="40" rows="5"></textarea><br><br>
<input name="enviar" type="submit" value="Enviar">
</blockquote>
</form>
<?}?>
*************************************

demas, si actualizara (f5) se volverian a enviar correos, asi que pregunto
¿se puede poner un formulario en otra pagina?¿como? gracias
__________________
el chute
  #5 (permalink)  
Antiguo 16/02/2005, 08:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
demas, si actualizara (f5) se volverian a enviar correos, asi que pregunto
¿se puede poner un formulario en otra pagina?¿como? gracias
No se trata de poner o no tu formulario en otro "script" (hablemos de escript a todo ese código bajo un mismo .php) sino de realizar una petición nueva al servidor (otro proceso) al terminar el tuyo

Es decir .. al enviar tu e-mail, al usar mail() ahí en lugar de mostrar tu mensaje de error/exito redireccionas a tu script que procese los mensajes de error .. El objetivo es no ocasionar ninguna "salida" (HTML echo "algo .." etc) al navegador (cliente) en procesos "puros" de PHP como el de enviar tu e-mail por ejemplo.

Podría ser algo así:
Código PHP:
if ($bien){
  
header ("Location: script_control_mensajes?mensaje=1.php");
  exit;
} else {
  
header ("Location: script_control_mensajes.php?mensaje=2");
  exit;

Ese "script_control_mensajes.php" podría ser tu mismo script que procesa el envio del e-mail .. pero necesitarías basarte en la existencia (y valor tal vez) de esa variable de control "mensaje" que nos llega por el URL (en GET) para definir si corresponde ejecutar tu proceso (usar mail() ... etc) o bien sólo mostrar el mensaje de error/exito que corresponda

algo tipo:

Código PHP:
if (isset ($_GET['mensaje'])){

   
$bien=mail(); // envias tu e-mail .. con etc procesos ..
   
if ($bien){
      
header ("Location: script_control_mensajes?mensaje=1.php");
      exit;
   } else {
      
header ("Location: script_control_mensajes.php?mensaje=2");
      exit;
   }
} else {

echo 
"Mensaje: ".$_GET['mensaje']; // aquí te puedes gestionar un simple array para contener tus frases de mensajes ...

Mas o menos esa es la idea .. redireccionar y con exit; parar la ajecución del script en ese punto (no nos interesa que se ejecute más el script . vamos a "cambiar" de script .. sea a si mismo en otra parte del mismo que define la lógica que usamos a base de los condicionales "if" o de otro tipo .. o bien a otro script incluso.

Un saludo,
  #6 (permalink)  
Antiguo 16/02/2005, 08:31
 
Fecha de Ingreso: noviembre-2002
Mensajes: 96
Antigüedad: 21 años, 4 meses
Puntos: 0
ok

bien, voy a probar y te comento, muchas gracias
__________________
el chute
  #7 (permalink)  
Antiguo 16/02/2005, 12:01
 
Fecha de Ingreso: mayo-2004
Mensajes: 400
Antigüedad: 19 años, 11 meses
Puntos: 0
Hola, como podria crear una lista de correo, lo unico que quiero que haga es que el usuario ingrese su direccion, se grabe en la base de datos y al mismo tiempo le envie un correo confirmandole el alta, solo la quiero para avisar cuando la pagina es actualizada.
Un saludo
  #8 (permalink)  
Antiguo 16/02/2005, 13:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
pakillo .. realiza tu pregunta en un tema nuevo .. (no tiene mucho que ver con este tema .. de hecho así se te podría recomendar algún sistema ya hecho sobre eso que existen muchos ya ...)

Un saludo,
  #9 (permalink)  
Antiguo 16/02/2005, 19:31
 
Fecha de Ingreso: febrero-2005
Mensajes: 4
Antigüedad: 19 años, 2 meses
Puntos: 0
jeje miren mi primitiva Mailing list

<?php
$escribir = fopen("mails.txt","a+");
$email = urlencode(strip_tags(stripslashes($_POST['email'])));
$info = $Email.",";
fwrite($escribir, $info);
fclose($escribir);
header ("Location: index.html");

?>

en un archivo de texto guarda los mails separados por coma:

[email protected], [email protected] ....

asi cuando quiero mandar un mail copio toda la linea y la pego en CC o CCO y listo :P
el problema viene cuando alguien ingresa un mail invalido o vuelve a ingresar el mismo mail... tendria que saltar un error pero todavia no aprendo bien a manipular textos...
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 05:02.