Foros del Web » Programando para Internet » PHP »

Enviar Mailing Masivo(estilo felicitación de navidad)

Estas en el tema de Enviar Mailing Masivo(estilo felicitación de navidad) en el foro de PHP en Foros del Web. Buenas! espero que todo vaya bien!!! me surge la siguiente duda, tengo en una base de datos bastantes clientes, y aunque no sea navidad :P ...
  #1 (permalink)  
Antiguo 16/07/2013, 03:17
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años
Puntos: 2
Enviar Mailing Masivo(estilo felicitación de navidad)

Buenas! espero que todo vaya bien!!! me surge la siguiente duda, tengo en una base de datos bastantes clientes, y aunque no sea navidad :P quisiera saber como poder enviar un correo a todos lo mails que tengo en mi base de datos (esa consulta si se hacerla :P ) y como hacer que en cada uno aparezca su nombre.....pues por ejemplo también si quiero mandarles una noticia o algo...quisiera también saber si eso puedo hacerlo desde xampp (es decir, desde mi localhost).
Muchas Gracias :)
  #2 (permalink)  
Antiguo 16/07/2013, 08:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Saludos,

Necesitas un servidor SMTP para poder enviarlo desde tu servidor. Para enviar email debes trabajar con la función mail o mejor aún con librerias como Zend_Mail o PHPMailer. Te recomiendo una búsqueda en este foro e internet vas a ver mucho material que te ayudará como hacerlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 17/07/2013, 00:59
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años
Puntos: 2
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Muchas gracias, comento: Me he descargado la versión 5.2.4 de PHPmailer, y estoy probando este código.... a ver si alguien puede decirme algo..ya que ni me muestra el que no se ha mostrado bien :S:S:S
El código lo he obtenido de http://www.programacion.com/articulo..._phpmailer_213

Código PHP:
Ver original
  1. <?PHP
  2.   // primero hay que incluir la clase phpmailer para poder instanciar
  3.   //un objeto de la misma
  4.   require "includes/class.phpmailer.php";
  5.  
  6.   //instanciamos un objeto de la clase phpmailer al que llamamos
  7.   //por ejemplo mail
  8.   $mail = new phpmailer();
  9.  
  10.   //Definimos las propiedades y llamamos a los métodos
  11.   //correspondientes del objeto mail
  12.  
  13.   //Con PluginDir le indicamos a la clase phpmailer donde se
  14.   //encuentra la clase smtp que como he comentado al principio de
  15.   //este ejemplo va a estar en el subdirectorio includes
  16.   $mail->PluginDir = "includes/";
  17.  
  18.  
  19.   //Para acentos.
  20.   $mail*>CharSet = "UTF*8";
  21.   $mail*>Encoding = "quoted*printable";
  22.  
  23.   //Con la propiedad Mailer le indicamos que vamos a usar un
  24.   //servidor smtp
  25.   $mail->Mailer = "smtp";
  26.  
  27.   //Asignamos a Host el nombre de nuestro servidor smtp
  28.   $mail->Host = "smtp.dominio.es";
  29.  
  30.   //Le indicamos que el servidor smtp requiere autenticación
  31.   $mail->SMTPAuth = true;
  32.  
  33.   //Le decimos cual es nuestro nombre de usuario y password
  34.   $mail->Username = "[email protected]";
  35.   $mail->Password = "contraseña";
  36.  
  37.   //Indicamos cual es nuestra dirección de correo y el nombre que
  38.   //queremos que vea el usuario que lee nuestro correo
  39.   $mail->From = "[email protected]";
  40.   $mail->FromName = "nombre";
  41.  
  42.   //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
  43.   //una cuenta gratuita, por tanto lo pongo a 30  
  44.   $mail->Timeout=30;
  45.  
  46.   //Indicamos cual es la dirección de destino del correo
  47.   $mail->AddAddress("a quien va "); //una vez me funcione esto ya me preocuparé para que aquí se meta una cadena...
  48.  
  49.   //Asignamos asunto y cuerpo del mensaje
  50.   //El cuerpo del mensaje lo ponemos en formato html, haciendo
  51.   //que se vea en negrita
  52.   $mail->Subject = "Prueba de phpmailer";
  53.   $mail->Body = "<b>Mensaje de prueba mandado con phpmailer en formato html</b>";
  54.  
  55.   //Definimos AltBody por si el destinatario del correo no admite email con formato html
  56.   $mail->AltBody = "Mensaje de prueba mandado con phpmailer en formato solo texto";
  57.  
  58.   //se envia el mensaje, si no ha habido problemas
  59.   //la variable $exito tendra el valor true
  60.   $exito = $mail->Send();
  61.  
  62.   //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho
  63.   //para intentar enviar el mensaje, cada intento se hara 5 segundos despues
  64.   //del anterior, para ello se usa la funcion sleep
  65.   $intentos=1;
  66.   while ((!$exito) && ($intentos < 5)) {
  67.     sleep(5);
  68.         //echo $mail->ErrorInfo;
  69.         $exito = $mail->Send();
  70.         $intentos=$intentos+1; 
  71.    
  72.    }
  73.  
  74.        
  75.    if(!$exito)
  76.    {
  77.     echo "Problemas enviando correo electrónico a ".$valor;
  78.     echo "<br/>".$mail->ErrorInfo; 
  79.    }
  80.    else
  81.    {
  82.     echo "Mensaje enviado correctamente";
  83.    }
  84. ?>

Muchas Gracias!!!!

por si sirve de algo mi cuenta de correo la he configurado de la siguiente manera:

http://www.arsys.info/configuracion-...bitual/#MO2003


Edito: me falla en la linea 60, ya que voy depurando mostrando echo""; y me llega hasta $exito = $mail->Send(); y ya si lo pongo después....nada, no aparece-..... y las dos lineas para acentos no me las coge...(eso lo he cogido de otro código)

Última edición por kobety; 17/07/2013 a las 04:18
  #4 (permalink)  
Antiguo 17/07/2013, 06:00
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Hola kobety,

Te respondo lo que creo que te puede ayudar:

Cita:
Iniciado por kobety Ver Mensaje
Código PHP:
Ver original
  1. <?PHP
  2.   // primero hay que incluir la clase phpmailer para poder instanciar
  3.   //un objeto de la misma
  4.   require "includes/class.phpmailer.php";
  5.  
  6.   //instanciamos un objeto de la clase phpmailer al que llamamos
  7.   //por ejemplo mail
  8.   $mail = new phpmailer();
  9.  
  10.   //Definimos las propiedades y llamamos a los métodos
  11.   //correspondientes del objeto mail
  12.  
  13.   //Con PluginDir le indicamos a la clase phpmailer donde se
  14.   //encuentra la clase smtp que como he comentado al principio de
  15.   //este ejemplo va a estar en el subdirectorio includes
  16.   $mail->PluginDir = "includes/";
Yo esto no lo pondría, creo que es lo que te afecta a los acentos, a mi, sin esto, me funciona perfectamente.

Cita:
Iniciado por kobety Ver Mensaje
Código PHP:
Ver original
  1. //Para acentos.
  2.   $mail*>CharSet = "UTF*8";
  3.   $mail*>Encoding = "quoted*printable";
Cita:
Iniciado por kobety Ver Mensaje
Código PHP:
Ver original
  1. //Con la propiedad Mailer le indicamos que vamos a usar un
  2.   //servidor smtp
  3.   $mail->Mailer = "smtp";
  4.  
  5.   //Asignamos a Host el nombre de nuestro servidor smtp
  6.   $mail->Host = "smtp.dominio.es";
Según tengo entendido, en host, lo que se debe poner es "localhost", si lo envías desde un hosting compartido, o en todo caso, en el soporte del hosting deben decirte qué colocar ahí, yo he probado como lo colocas tú y me tira error 500, por eso te lo digo.

Cita:
Iniciado por kobety Ver Mensaje
Código PHP:
Ver original
  1. //Le indicamos que el servidor smtp requiere autenticación
  2.   $mail->SMTPAuth = true;
  3.  
  4.   //Le decimos cual es nuestro nombre de usuario y password
  5.   $mail->Username = "[email protected]";
  6.   $mail->Password = "contraseña";
  7.  
  8.   //Indicamos cual es nuestra dirección de correo y el nombre que
  9.   //queremos que vea el usuario que lee nuestro correo
  10.   $mail->From = "[email protected]";
  11.   $mail->FromName = "nombre";
  12.  
  13.   //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
  14.   //una cuenta gratuita, por tanto lo pongo a 30  
  15.   $mail->Timeout=30;
  16.  
  17.   //Indicamos cual es la dirección de destino del correo
  18.   $mail->AddAddress("a quien va "); //una vez me funcione esto ya me preocuparé para que aquí se meta una cadena...
  19.  
  20.   //Asignamos asunto y cuerpo del mensaje
  21.   //El cuerpo del mensaje lo ponemos en formato html, haciendo
  22.   //que se vea en negrita
  23.   $mail->Subject = "Prueba de phpmailer";
  24.   $mail->Body = "<b>Mensaje de prueba mandado con phpmailer en formato html</b>";
  25.  
  26.   //Definimos AltBody por si el destinatario del correo no admite email con formato html
  27.   $mail->AltBody = "Mensaje de prueba mandado con phpmailer en formato solo texto";
  28.  
  29.   //se envia el mensaje, si no ha habido problemas
  30.   //la variable $exito tendra el valor true
  31.   $exito = $mail->Send();
  32.  
  33.   //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho
  34.   //para intentar enviar el mensaje, cada intento se hara 5 segundos despues
  35.   //del anterior, para ello se usa la funcion sleep
  36.   $intentos=1;
  37.   while ((!$exito) && ($intentos < 5)) {
  38.     sleep(5);
  39.         //echo $mail->ErrorInfo;
  40.         $exito = $mail->Send();
  41.         $intentos=$intentos+1; 
  42.    
  43.    }
  44.  
  45.        
  46.    if(!$exito)
  47.    {
  48.     echo "Problemas enviando correo electrónico a ".$valor;
  49.     echo "<br/>".$mail->ErrorInfo; 
  50.    }
  51.    else
  52.    {
  53.     echo "Mensaje enviado correctamente";
  54.    }
  55. ?>

Muchas Gracias!!!!
Por lo que comentas, creo que el problema puede estar en que lo intentas enviar desde tu máquina y no tengas un servidor SMTP instalado, tal como te decía abimaelrc

Espero que te haya servido de ayuda.

.
  #5 (permalink)  
Antiguo 18/07/2013, 01:25
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años
Puntos: 2
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Muchas Gracias rbczgz ! lo del correo como he puesto en el post lo he configurado así http://www.arsys.info/configuracion-...bitual/#MO2003 con la opción de outlook express , voy a ver si lo consigo echar a andar, la librería la he metido dentro de mi proyecto en una carpeta que se llama includes .... a ver si va a ser que está mal incluida :S


Edito: me da el siguiente error

Problemas enviando correo electrónico
The following From address failed: [email protected] : Called Mail() without being connected


y la cuenta está bien.... ya que desde outlook envía.... :S



aunque acabo de abrir el outlook y me ha dicho esto en un error...


Error desconocido. Cuenta: 'cuenta', Servidor: 'smtp.domino.es', Protocolo: SMTP, Respuesta del servidor: '421 ', Puerto: 587, Seguridad (SSL): No, Error de servidor: 421, Número de error: 0x800CCC67

Última edición por kobety; 18/07/2013 a las 01:51
  #6 (permalink)  
Antiguo 18/07/2013, 01:51
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Cita:
Iniciado por kobety Ver Mensaje
Muchas Gracias rbczgz ! lo del correo como he puesto en el post lo he configurado así http://www.arsys.info/configuracion-...bitual/#MO2003 con la opción de outlook express , voy a ver si lo consigo echar a andar, la librería la he metido dentro de mi proyecto en una carpeta que se llama includes .... a ver si va a ser que está mal incluida :S
Por lo que muestras, la librería no está mal incluida, pero dices que has configurado la cuenta de correo según las instrucciones de ese enlace, ¿dónde has configurado esa cuenta de correo?

También mencionabas que intentabas enviar desde tu PC con Xampp, para poder enviar de esa forma, necesitas instalar un servidor de correo en tu máquina, si no lo tienes, te quedan dos opciones, utilizar google para buscar un servidor SMTP para windows compatible con Xampp o hacer los envíos directamente desde un alojamiento externo.

Cita:
Iniciado por kobety Ver Mensaje
Edito: me da el siguiente error

Notice: Undefined variable: valor in C:\xampp\htdocs\....php on line 77
Problemas enviando correo electrónico a
The following From address failed: [email protected] : Called Mail() without being connected


y la cuenta está bien.... ya que desde outlook envía.... :S



aunque acabo de abrir el outlook y me ha dicho esto en un error...


Error desconocido. Cuenta: 'cuenta', Servidor: 'smtp.domino.es', Protocolo: SMTP, Respuesta del servidor: '421 ', Puerto: 587, Seguridad (SSL): No, Error de servidor: 421, Número de error: 0x800CCC67
A mi me sigue pareciendo que el problema está en que intentas enviar desde tu máquina sin tener un servidor de correo instalado en ella.

Lo único que se me ocurre es que pruebes en este enlace, a ver si ahí encuentras la solución.

Suerte y ya nos contarás...

.
  #7 (permalink)  
Antiguo 18/07/2013, 01:59
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años
Puntos: 2
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

no me deja volver a editar, así que pongo otro post.....

estoy viendo que para instalar un servidor hace falta instalar si o si el IIS de windows? Les agradecería que me orientasen un poco...en esto estoy con bastantes lagunas :S:S
  #8 (permalink)  
Antiguo 18/07/2013, 02:29
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Xampp viene con un servidor de smtp: Mercury Mail Transport System necesitas configurarlo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #9 (permalink)  
Antiguo 18/07/2013, 02:51
Avatar de exatienda  
Fecha de Ingreso: julio-2013
Ubicación: Manresa, Barcelona
Mensajes: 227
Antigüedad: 10 años, 9 meses
Puntos: 21
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Te paso el código que uso yo para los massmailings que funciona:

Código PHP:


$headers    
"Content-type: text/html\r\n";
$headers    .= "From: Tu texto from <tu_correo>\n";
$recipient    $Email_cliente;
$subject    "Aquí va el asunto";
$message        "Hola que tal esto es un test";
mail($recipientutf8_decode($subject), $messageutf8_decode($headers)); 
__________________
cajas rack tpvs | impresoras
  #10 (permalink)  
Antiguo 18/07/2013, 02:52
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años
Puntos: 2
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

voy a echarle un ojo a lo del mercury...a ver si consigo echarlo a andar... Muchas Gracias! os voy comentando!


he configurado el mercury de esta manera...y nada....he probado con el código que pone en esa página y no me deja.... http://detodounpoquitoplus.blogspot....ampp-para.html he probado desde un gmail y tampoco, pero la cosa sería poder enviarla desde una dirección que no sea esa...x ejemplo desde [email protected] ....

he probado también este código

Código PHP:
Ver original
  1. <?php
  2. $from_name = "Yo";
  3. $from_email = "[email protected]"; //cambielo por su correo
  4. $headers = "From: $from_name <$from_email>";
  5. $body = "Hi, \nPrueba desde $from_name <$from_email>.";
  6. $subject = "Hola";
  7. $to = "otro@correo"; //cambielo por el correo al que desea mandarlo
  8.  
  9. if (mail($to, $subject, $body, $headers)) {
  10.   echo "Enviado!";
  11. } else {
  12.   echo "Error…";
  13. }
  14. ?>
me dice k se ha enviado...pero a mi no me llega :( :(

Última edición por kobety; 18/07/2013 a las 04:30
  #11 (permalink)  
Antiguo 18/07/2013, 12:39
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Hola kobety,

Si lo estás enviando con ese método, según a qué cuenta de e-mail lo hagas, te habrá llegado a la bandeja de spam, te recomiendo que lo compruebes.

.
  #12 (permalink)  
Antiguo 19/07/2013, 00:56
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años
Puntos: 2
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

gracias por responder, pero no, no me llega a spam ni a ningún sitio :( :( :(
  #13 (permalink)  
Antiguo 19/07/2013, 02:14
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Hola kobety,

Ya no se me ocurren más opciones, yo no uso Xampp, por lo que no te puedo ayudar con eso, solo se me ocurre que lo hagas desde un hosting externo (mejor de pago, creo que son más fiables y, además, te dan soporte) y así te evitarías todos los problemas derivados de hacerlo desde tu máquina...

.
  #14 (permalink)  
Antiguo 19/07/2013, 07:57
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años
Puntos: 2
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

Gracias por tu respuesta, voy a investigar más a ver si lo consigo.... pero veo la cosa malamente... :S:S
  #15 (permalink)  
Antiguo 19/07/2013, 08:23
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Enviar Mailing Masivo(estilo felicitación de navidad)

A mandar!! Espero que lo consigas, si es así, ya sabes, postéalo para que les sirva a otros

Etiquetas: mailing
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 10:00.