Foros del Web » Programando para Internet » PHP »

Email a usuarios

Estas en el tema de Email a usuarios en el foro de PHP en Foros del Web. Tengo una web que programe desde 0, y quisiera implementar un sistema para enviarle mensajes a mis usuarios a sus emails, algo así como los ...
  #1 (permalink)  
Antiguo 19/08/2010, 19:54
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 4 meses
Puntos: 12
Email a usuarios

Tengo una web que programe desde 0, y quisiera implementar un sistema para enviarle mensajes a mis usuarios a sus emails, algo así como los sistemas de correo masivo que utilizan los foros de phpBB o el mismo Vbulletin.

¿Alguien puede darme una idea de como puedo hacerlo?
__________________
http://exegesis-biblica.com/
  #2 (permalink)  
Antiguo 19/08/2010, 20:16
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Email a usuarios

//...usa la funcion mail() pero no manda archivos adjuntos...para ese caso utiliza phpMailer es facil....no creo q te complique
  #3 (permalink)  
Antiguo 19/08/2010, 20:29
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 4 meses
Puntos: 12
Respuesta: Email a usuarios

gracias, esperaba algo mas especifico
__________________
http://exegesis-biblica.com/
  #4 (permalink)  
Antiguo 20/08/2010, 07:17
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Email a usuarios

Hola amigo yo tengo un sistema de mensajes que estoy desarrollando.
Tengo un menu con mensajes,mensajes enviados,enviar mensaje y enviar email:
Te paso mi codigo de enviar email igual creo que me falta mucho un poco de seguridad:
-----------------------------------------------------------------------------------------------------------------------
<?php
$aviso = "";
// check form
if ($_POST['email'] != "") {
// email de destino
$email=$_POST['email'];

// asunto del email
$subject = $_POST['asunto'];

// Cuerpo del mensaje
$mensaje = "---------------------------------- \n";
$mensaje.= $_POST['asunto'] ;
$mensaje.= "---------------------------------- \n";
$mensaje.="Nombre: ".$_POST['nombre']."\n";
$mensaje.= "Asunto: ".$_POST['asunto']."\n";
$mensaje.= "FECHA: ".date("d/m/Y")."\n";
$mensaje.= "HORA: ".date("h:i:s a")."\n";
$mensaje.= "---------------------------------- \n\n";
$mensaje.= $_POST['mensaje']."\n\n";
$mensaje.= "---------------------------------- \n";

// headers del email
$headers = "From: ".$_POST['email']."\r\n";

// Enviamos el mensaje
if (mail($email, $subject, $mensaje, $headers)) {
$aviso = "Su mensaje fue enviado correctamente";
} else {
$aviso = "Error de envío";
}
}
?>

<h2>Enviar Email con PHP</h2>
<?php if ($aviso != "") { ?>
<p><em><?php echo $aviso; ?></em></p>
<?php } ?>
<form action="" method="post">
<label for="nombres">Nombres</label> <input name="nombre" id="nombre" type="text" /><br />
<label for="empresa">Empresa</label> <input name="empresa" id="empresa" type="text" /><br />
<label for="email">Email</label> <input name="email" id="email" type="text" /><br />
<label for="telefono">Telefono</label> <input name="telefono" id="telefono" type="text" /><br />
<label for="mensaje">Mensaje</label> <textarea name="mensaje" cols="30" rows="6"></textarea><br />
<label for="btsend">&nbsp;</label> <button name="btsend" id="btsend" type="submit">Enviar</button>
</form>
--------------------------------------------------------------------------------------------------------------------
Espero que te sirva.
Saludos !
  #5 (permalink)  
Antiguo 20/08/2010, 19:45
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 4 meses
Puntos: 12
Respuesta: Email a usuarios

ale_dla como haces para carga las direcciones a donde quieres mandar el mensaje?
__________________
http://exegesis-biblica.com/
  #6 (permalink)  
Antiguo 20/08/2010, 20:32
 
Fecha de Ingreso: agosto-2010
Ubicación: Venezuela
Mensajes: 24
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Email a usuarios

La función mail($email, $subject, $mensaje, $headers) te permite enviar los correos tal cual como lo explicó ale_dla.

Simplemente colocar la dirección que quieras en la variable $email.

Ejemplo: mail("[email protected]","Prueba","Hola Mundo!") y ya.

PD Importantísima: Si no tienes un servidor de correos instalado y funcionando en el servidor o la máquina donde ejecutes ese comando entonces no se enviará nada :P Para eso yo uso postfix, puedes buscarlo en google para su instalación y configuración.
  #7 (permalink)  
Antiguo 20/08/2010, 21:11
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 4 meses
Puntos: 12
Respuesta: Email a usuarios

Creo que no he sido lo suficientemente claro....

como en este caso todos los correos de mis usuarios están en la base de datos, supongo que los sacaría de allí para ponerlos en una variable. ¿lo haría por medio de un loop hasta que se envíe a todos los registros?

while (etc) {

codigo para enviar mensajes

}

¿sería algo así? ¿o meto todos los correos en una variable?

Creo que esto ultimo seria lo menos indicado considerando si llegara a tener como 1000 usuarios.

Espero con esto quede un poco más claro cual es mi duda.
__________________
http://exegesis-biblica.com/
  #8 (permalink)  
Antiguo 20/08/2010, 21:20
 
Fecha de Ingreso: agosto-2010
Ubicación: Venezuela
Mensajes: 24
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Email a usuarios

Mmmm bueno puede hacerse de varias maneras, eso ya es implementación y como puedes saber, no hay una única implementación :P

Se me ocurren varias.

1. La que acabas de mencionar. Obtienes de la base de datos todos los emails y envías los correos a todo el mundo. El límite no lo conozco porque depende de que tan grande sea la cantidad de personas en tu base de datos (eso sólo lo sabes tu). Si la cantidad es muy grande entonces puedes hacer la consulta a la base de datos por partes para que no haya tanto ovehead (puedes leer acerca del comando BETWEEN en SQL que te permite obtener un subconjunto del conjunto total que retorna una consulta y así puedes mandar los correos de manera más controlada)

2. Alguna librería en PHP (que es probable que exista) que realice esta tarea.

Esa es la información que manejo, si alguien conoce alguna otra sería excelente compartirla =)

Y suerte con eso!
  #9 (permalink)  
Antiguo 20/08/2010, 21:35
 
Fecha de Ingreso: diciembre-2007
Mensajes: 467
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Email a usuarios

blogger:

Yo hice un sistema así como el que necesitás. Te puedo mencionar que la programación es sencilla, pero el tema de superar los límites del servidor complica bastante todo. Yo te recomiendo que contactes a los administradores de tu hosting y les preguntes sobre los límites para envíos de mails usando la función mail
Yo lo que hacía era consultar la base de datos y cargar las direcciones de a 20 en una variable. Luego hacía el envío (colocando esas direcciones en CCO), tomaba otros 20 destinatarios, los cargaba en la variable, hacía otro envío, etc.
Alguien plantea por ahí el tema de archivos adjuntos. No sé si necesitás enviar archivos adjuntos, pero recordá que si querés mostrar texto, imágenes, etc. en fin, lo que contiene una página tipo, no es necesario que envíes todo eso, enviás sólo el HTML con la función mail y hacés que ese HTML tome las imágenes del servidor. Es mucho mejor idea que enviar todo el paquete de información a los destinatarios, algo que puede ser completamente impracticable.
Decíme si te sirve.
Saludos.



Federico
  #10 (permalink)  
Antiguo 20/08/2010, 22:26
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Email a usuarios

Debes tomar mucho en cuenta el asunto del servidor. Un hosting común y silvestre tiene un límite bastante bajo de envíos de correos. Creo que son 200 por hora. Si es así, y tienes mucho más usuarios no podrás enviarlos todo de golpe, tendrías que hacerlo por partes. La solución final a este dilema es tener un servidor dedicado. Suerte!
  #11 (permalink)  
Antiguo 21/08/2010, 14:19
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Email a usuarios

Solamente donde ingresas el email en el campo email ya envia directamente al email que ingresaste
Saludos!

Etiquetas: email, usuarios
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 11:07.