Foros del Web » Programando para Internet » PHP »

Envío de e-mail a múltiples destinatarios con PHP

Estas en el tema de Envío de e-mail a múltiples destinatarios con PHP en el foro de PHP en Foros del Web. Buenas noches, Tengo un formulario con 12 entradas que consiste en el envío de un e-mail a las direcciones que coloco en los campos del ...
  #1 (permalink)  
Antiguo 25/10/2007, 21:54
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Envío de e-mail a múltiples destinatarios con PHP

Buenas noches,

Tengo un formulario con 12 entradas que consiste en el envío de un e-mail a las direcciones que coloco en los campos del formulario.

El código HTML del formulario es:

Código PHP:
<form id="form1" name="email_de_recordatorio" method="POST" action="accionmail.php" >
  <
br>
  <
br>
  <
p><img src="http://www.manasma.com/images/logo_solo.png" alt="Logo" width="372" height="76" /></p>
  <
p>&nbsp;</p>
  <
p align="left"><img src="http://www.forosdelweb.com/images/envio_email1_recordatorio.gif" alt="Env&iacute;o de 1&deg; e-mail de recordatorio" width="591" height="42" /></p>
  <
table width="940" border="0" align="center">
    <
tr>
      <
td height="23">1Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio1" type="text" class="jsrequired" id="recordatorio1" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">2Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio2" type="text" class="jsrequired" id="recordatorio2" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">3Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio3" type="text" class="jsrequired" id="recordatorio3" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">4Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio4" type="text" class="jsrequired" id="recordatorio4" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">5Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio5" type="text" class="jsrequired" id="recordatorio5" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">6Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio6" type="text" class="jsrequired" id="recordatorio6" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">7Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio7" type="text" class="jsrequired" id="recordatorio7" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">8Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio8" type="text" class="jsrequired" id="recordatorio8" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">9Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio9" type="text" class="jsrequired" id="recordatorio9" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">10Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio10" type="text" class="jsrequired" id="recordatorio10" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">11Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio11" type="text" class="jsrequired" id="recordatorio11" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td height="23">12Enviar a: <span class="style1"></span></td>
      <
td><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
          <
input name="recordatorio12" type="text" class="jsrequired" id="recordatorio12" tabindex="1"  maxlength="40" /></td>
    </
tr>
    <
tr>
      <
td width="308" height="23">13Enviar a: <span class="style1"></span></td>
      <
td width="622"><a onmouseover="Tip('Colocar e-mail del destinatario')"><img src="http://www.forosdelweb.com/images/tooltip.gif" alt="Tooltip" width="25" height="23" border="0" /></a>
      <
input name="recordatorio13" type="text" class="jsrequired" id="recordatorio13" tabindex="1"  maxlength="40" /></td>
    </
tr>
  </
table>
  
  <
tr><div align="center"><input name="enviar" type="submit" id="Registrar" tabindex="9"  value="Enviar" />
  </
div>
  
</
form
El código del archivo accionmail.php es:

Código PHP:
<?
$para  
'$recordatorio1,$recordatorio2,$recordatorio3,$recordatorio4,$recordatorio5,$recordatorio6,$recordatorio7
,$recordatorio8,$recordatorio9,$recordatorio10,$recordatorio11,$recordatorio12'

$asunto "Este mensaje es de prueba";
$cuerpo '
<html>
<head>
   <title>Prueba de correo</title>
</head>
<body>
<h1>Hola amigos!</h1>
<p>
<b>Bienvenidos a mi correo electrónico de prueba</b>. Estoy encantado de tener tantos lectores. Este cuerpo del mensaje es del artículo de envío de mails por PHP. Habría que cambiarlo para poner tu propio cuerpo. Por cierto, cambia también las cabeceras del mensaje.
</p>
</body>
</html>
'
;

//para el envío en formato HTML
$headers "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

//dirección del remitente
$headers .= "From: Atencion al cliente <[email protected]>\r\n";

//direcciones que recibirán copia oculta
$headers .= "Bcc: [email protected]\r\n";

mail($para,$asunto,$cuerpo,$headers);
?>
Este código tiene muchos problemas ya que eventualmente se envía los correos a todos los usuarios y en otras ocasiones no.

¿De qué manera puedo hacer para que el e-mail se envíe a todas las direcciones que coloque en el formulario?

Espero su colaboración

Última edición por Daam; 26/10/2007 a las 19:11
  #2 (permalink)  
Antiguo 25/10/2007, 22:15
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Envío de e-mail a múltiples destinatarios con PHP

Porque no simplemente pones un textarea para poner los mails separados por coma (o tu mismo haces la separacion por comas) y luego los envias ??...

Asi no estas limitado a 12 mails.

Lo otro es que deberias hacer un if(mail()...) para saber si realmente se envio o no... ya que podrias contabilizar o dejar en un archivo de texto o en la base de datos todos los que no se enviaron y poder revisar en cada caso que es lo que sucede.

A veces por un tema de servidor de correo fallan algunos... y puede que la respuesta la veas en el log del mismo.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 26/10/2007, 09:00
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Re: Envío de e-mail a múltiples destinatarios con PHP

Encontré un código en la Web que sugiere que se coloque el operador "." de PHP para enviar el e-mail a varios destinatarios.

Intente colocando todos los e-mails separados por "," en un solo campo de texto, pero de igual manera presento error.

El código que les digo dice así:

Código PHP:
 <?php
/* recipientes */
$para  "[email protected]", " // fijese en la comma
$para .= "[email protected]";

/* asunto */
$asunto "Recordatorio de Cumplea&ntilde;os para Agosto";

/* mensaje */
$mensaje '
<html>
<head>
<title>Recordatorio de Cumplea&ntilde;os para Agosto</title>
</head>
<body>
<p>&iexcl;Aqu&iacute; est&aacute;n los cumplea&ntilde;os que llegan en Agosto!</p>
<table>
<tr>
  <th>Persona</th><th>D&iacute;a</th><th>Mes</th><th>A&ntilde;o</th>
</tr>
<tr>
  <td>Juan</td><td>3</td><td>August</td><td>1970</td>
</tr>
<tr>
  <td>Sandra</td><td>17</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
'
;

/* Para enviar correo HTML, puede definir la cabecera Content-type. */
$cabeceras  "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* cabeceras adicionales */
$cabeceras .= "To: Maria <[email protected]>, Kelly <[email protected]>\r\n";
$cabeceras .= "From: Recordatorio <[email protected]>\r\n";
$cabeceras .= "Cc: [email protected]\r\n";
$cabeceras .= "Bcc: [email protected]\r\n";

/* y ahora, enviarlo */
mail($para$asunto$mensaje$cabeceras);
?>
Ahora, no se como aumentar el número de destinatarios de 2 (como aparece en el código anterior) a 12. Espero su ayuda.

Gracias

Última edición por Daam; 26/10/2007 a las 10:18 Razón: Para cambiar etiquetas CODE por PHP
  #4 (permalink)  
Antiguo 26/10/2007, 09:32
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Envío de e-mail a múltiples destinatarios con PHP

Bueno... te pido 2 cosas antes que nada... podrias cambiar las etiquetas CODE por PHP, ya que se agranda la pagina y no se puede leer bien (y tengo la res. en 1280x1024)

Grax.

Voy a revisar tu code por mientras.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 26/10/2007, 09:33
Avatar de jorgedx  
Fecha de Ingreso: junio-2005
Ubicación: Chile, Los Andes
Mensajes: 406
Antigüedad: 18 años, 10 meses
Puntos: 4
Re: Envío de e-mail a múltiples destinatarios con PHP

Código PHP:

$para  
"[email protected]", " // fijese en laS commaS
$para .= "[email protected]", ";
$para .= "[email protected]", ";
$para .= "[email protected]", ";
$para .= "[email protected]";           // Sin coma 
Fue solo unas concatenaciones,

ahora si son muchos podrias ponerlos en un array y enviarlos dentro de un ciclo iterativo.
__________________
Nuevamente a las pistas ...
  #6 (permalink)  
Antiguo 26/10/2007, 10:19
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Envío de e-mail a múltiples destinatarios con PHP

Gracias jorgedx, pero aún no me está sirviendo el código... solo envía el e-mail a la dirección Bcc que especifiqué en el código.
  #7 (permalink)  
Antiguo 26/10/2007, 10:32
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Envío de e-mail a múltiples destinatarios con PHP

Prueba con esto:
Código PHP:
<?php
/* contador de errores */
$contError 0;

/* recipientes */
$para  "[email protected][email protected][email protected][email protected][email protected]"
/* arreglo de recipientes */
$to explode(',',$para);

/* asunto */
$asunto "Recordatorio de Cumplea&ntilde;os para Agosto";

/* mensaje */
$mensaje '
<html>
<head>
<title>Recordatorio de Cumplea&ntilde;os para Agosto</title>
</head>
<body>
<p>&iexcl;Aqu&iacute; est&aacute;n los cumplea&ntilde;os que llegan en Agosto!</p>
<table>
<tr>
  <th>Persona</th><th>D&iacute;a</th><th>Mes</th><th>A&ntilde;o</th>
</tr>
<tr>
  <td>Juan</td><td>3</td><td>August</td><td>1970</td>
</tr>
<tr>
  <td>Sandra</td><td>17</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
'
;

/**
 * Para enviar a varios destinatarios mostrandole a quienes se les envio
 */

/* Para enviar correo HTML, puede definir la cabecera Content-type. */
$cabeceras  "MIME-Version: 1.0\r\n";
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";

/* cabeceras adicionales */
$cabeceras .= "To: ".$para."\r\n";
$cabeceras .= "From: Recordatorio <[email protected]>\r\n";
$cabeceras .= "Cc: [email protected]\r\n";
$cabeceras .= "Bcc: [email protected]\r\n";

/* y ahora, enviarlo */
for($i=0;$i<count($to);$i++){
    if(!
mail($to[$i], $asunto$mensaje$cabeceras)){
        
$contError++;
        
//echo para ver cuantos no fueron enviados
    
}
}

/**
 * Para enviar a varios destinatarios haciendoles creer que el mail 
 * solo es para ellos
 */
/*
for($i=0;$i<count($to);$i++){
    $cabeceras  = "MIME-Version: 1.0\r\n";
    $cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $cabeceras .= "To: ".$to[$i]."\r\n";
    $cabeceras .= "From: Recordatorio <[email protected]>\r\n";
    $cabeceras .= "Cc: [email protected]\r\n";
    $cabeceras .= "Bcc: [email protected]\r\n";
    if(!mail($to[$i], $asunto, $mensaje, $cabeceras)){
        $contError++;
        //echo para ver cuantos no fueron enviados
    }
}
*/
?>
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #8 (permalink)  
Antiguo 26/10/2007, 10:37
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Envío de e-mail a múltiples destinatarios con PHP

Ya edite la etiqueta CODE por PHP marvin.
  #9 (permalink)  
Antiguo 26/10/2007, 10:45
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Envío de e-mail a múltiples destinatarios con PHP

??? si lo se... :D te deje el script de arriba para que pruebes si te funciona :D
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #10 (permalink)  
Antiguo 26/10/2007, 10:46
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Envío de e-mail a múltiples destinatarios con PHP

Gracias Marvin! Estoy probando el código en este momento. Cualquier duda posteo aquí.
  #11 (permalink)  
Antiguo 26/10/2007, 10:49
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Envío de e-mail a múltiples destinatarios con PHP

Tambien si quieres editar tu primer mensaje para poner etiquetas php :D no seria malo ;)

Suerte y toy aca cualquier cosa.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #12 (permalink)  
Antiguo 26/10/2007, 19:25
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Re: Envío de e-mail a múltiples destinatarios con PHP

Estuve toda la tarde de hoy (sin exagerar) intentando hacer funcionar el código de envío de correos desde mi formulario.

Me sirvió hasta que empecé a cambiar los destinatarios por variables ya que es eso lo que en realidad necesito (dependiendo de la dirección que introduzcan en el formulario, enviar el e-mail).

Necesito recibir una copia de los mensajes que envío para mantener un control de los correos enviados y recibirlos directamente en mi correo electrónico. El problema ahora es que si por ejemplo, coloco 2 destinatarios nada más (supongo que uno por cada campo del formulario, sin importar que este vacío) recibo como Bcc, 12 correos electrónicos.

Los correos están llegando efectivamente a los remitentes que coloco en el formulario. El problema ahora es que siempre recibo como Bcc en mi correo electrónico 12 e-mails (de los campos del formulario) aunque no haya llenado en realidad las 12 casillas.

Mi pregunta es:

¿De qué manera puedo hacer para recibir una copia en mi correo electrónico de los mensajes que se logran enviar (solamente)?


El código que estoy usando ahora es:

Código PHP:
<?php
/* contador de errores */
$contError 0;

/* recipientes */
$direccion1 $HTTP_POST_VARS['recordatorio1'];
$direccion2 $HTTP_POST_VARS['recordatorio2'];
$direccion3 $HTTP_POST_VARS['recordatorio3'];
$direccion4 $HTTP_POST_VARS['recordatorio4'];
$direccion5 $HTTP_POST_VARS['recordatorio5'];
$direccion6 $HTTP_POST_VARS['recordatorio6'];
$direccion7 $HTTP_POST_VARS['recordatorio7'];
$direccion8 $HTTP_POST_VARS['recordatorio8'];
$direccion9 $HTTP_POST_VARS['recordatorio9'];
$direccion10 $HTTP_POST_VARS['recordatorio10'];
$direccion11 $HTTP_POST_VARS['recordatorio11'];
$direccion12 $HTTP_POST_VARS['recordatorio12'];

$para "$direccion1, $direccion2, $direccion3, $direccion4, $direccion5, $direccion6, $direccion7, $direccion8, $direccion9, $direccion10, $direccion11, $direccion12";

/* arreglo de recipientes */
$to explode(',',$para);

/* asunto */
$asunto "Recordatorio de pago pendiente";

/* mensaje */
$mensaje '
<html>
<head>
<title>Prueba</title>
</head>
<body>
<p>&iexcl;Aqu&iacute; est&aacute;n los cumplea&ntilde;os que llegan en Agosto!</p>
<table>
<tr>
  <th>Persona</th><th>D&iacute;a</th><th>Mes</th><th>A&ntilde;o</th>
</tr>
<tr>
  <td>Juan</td><td>3</td><td>August</td><td>1970</td>
</tr>
<tr>
  <td>Sandra</td><td>17</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
'
;

for(
$i=0;$i<count($to);$i++){
    
$cabeceras  "MIME-Version: 1.0\r\n";
    
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
    
$cabeceras .= "To: ".$to[$i]."\r\n";
    
$cabeceras .= "From: Departamento de cobranzas <[email protected]>\r\n";
    
$cabeceras .= "Bcc: [email protected]\r\n";
    if(!
mail($to[$i], $asunto$mensaje$cabeceras)){
        
$contError++;
        
        
//echo para ver cuantos no fueron enviados
    
}
}

?>
Espero su ayuda
  #13 (permalink)  
Antiguo 26/10/2007, 19:33
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Envío de e-mail a múltiples destinatarios con PHP

Cualquier sugerencia, bienvenida sea.

Creo que lo que tengo que hacer es comprobar si las variables están "vacías" y en ese caso, no incluirlas en la variable $para.
  #14 (permalink)  
Antiguo 27/10/2007, 10:48
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Envío de e-mail a múltiples destinatarios con PHP

¿De qué manera puedo hacer para recibir una copia en mi correo electrónico de los mensajes que se logran enviar solamente?
  #15 (permalink)  
Antiguo 28/10/2007, 21:29
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Re: Envío de e-mail a múltiples destinatarios con PHP

Lo último que se me ocurrió es chequear si la variable está vacía, en caso afirmativo, eliminarla a través de la función unset.

Código PHP:

<?php
/* contador de errores */
$contError 0;

/* recipientes */
$direccion1 $HTTP_POST_VARS['recordatorio1'];
$direccion2 $HTTP_POST_VARS['recordatorio2'];
$direccion3 $HTTP_POST_VARS['recordatorio3'];
$direccion4 $HTTP_POST_VARS['recordatorio4'];
$direccion5 $HTTP_POST_VARS['recordatorio5'];
$direccion6 $HTTP_POST_VARS['recordatorio6'];
$direccion7 $HTTP_POST_VARS['recordatorio7'];
$direccion8 $HTTP_POST_VARS['recordatorio8'];
$direccion9 $HTTP_POST_VARS['recordatorio9'];
$direccion10 $HTTP_POST_VARS['recordatorio10'];
$direccion11 $HTTP_POST_VARS['recordatorio11'];
$direccion12 $HTTP_POST_VARS['recordatorio12'];

    if (empty(
$direccion1))
    unset(
$direccion1);
    
    elseif (empty(
$direccion2))
    unset(
$direccion2);
    
    elseif  (empty(
$direccion3))
    unset(
$direccion3);
    
    elseif  (empty(
$direccion4))
    unset(
$direccion4);
    
    elseif (empty(
$direccion5))
    unset(
$direccion5);
    
    elseif  (empty(
$direccion6))
    unset(
$direccion6);
    
    elseif  (empty(
$direccion7))
    unset(
$direccion7);
    
    elseif  (empty(
$direccion8))
    unset(
$direccion8);
    
    elseif  (empty(
$direccion9))
    unset(
$direccion9);
    
    elseif  (empty(
$direccion10))
    unset(
$direccion10);
    
    elseif  (empty(
$direccion11))
    unset(
$direccion11);
    
    elseif  (empty(
$direccion12))
    unset(
$direccion12);
        

$para "$direccion1, $direccion2, $direccion3, $direccion4, $direccion5, $direccion6, $direccion7, $direccion8, $direccion9, $direccion10, $direccion11, $direccion12";

/* arreglo de recipientes */
$to explode(',',$para);

/* asunto */
$asunto "Prueba mail";

/* mensaje */
$mensaje '
<html>
<head>
<title>Prueba</title>
</head>
<body>
<p>&iexcl;Aqu&iacute; est&aacute;n los cumplea&ntilde;os que llegan en Agosto!</p>
<table>
<tr>
  <th>Persona</th><th>D&iacute;a</th><th>Mes</th><th>A&ntilde;o</th>
</tr>
<tr>
  <td>Juan</td><td>3</td><td>August</td><td>1970</td>
</tr>
<tr>
  <td>Sandra</td><td>17</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
'
;

for(
$i=0;$i<count($to);$i++){
    
$cabeceras  "MIME-Version: 1.0\r\n";
    
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";
    
$cabeceras .= "To: ".$to[$i]."\r\n";
    
$cabeceras .= "From: Departamento de cobranzas <[email protected]>\r\n";
    
$cabeceras .= "Bcc: [email protected]\r\n";
    if(!
mail($to[$i], $asunto$mensaje$cabeceras)){
        
$contError++;
        
        
//echo para ver cuantos no fueron enviados
    
}
}

?>
Me funcionó una sola vez , lo intenté de nuevo, y los correos no llegan a los destinatarios ni al correo especificado como Bcc...

Lo que quiero hacer lograr es que el e-mail se envíe solamente a los usuarios que escriba en el formulario y que el correo especificado como Bcc reciba una copia de los correos enviados solamente y no las 12 notificaciones aunque no se hayan enviado.
  #16 (permalink)  
Antiguo 28/10/2007, 21:53
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Envío de e-mail a múltiples destinatarios con PHP

Yap... testea esto:
Código PHP:
<?php 
/* contador de errores */ 
$contError 0

/* recipientes */
for($a=1;$a<13;$a++){
    if(!empty(
$_POST['recordatorio'.$a])){
        
$paraTemp .= $_POST['recordatorio'.$a].", ";
    }
}
/* elimino la ultima coma (,) */
$para rtrim($paraTemp'a..z@');
$para rtrim($para',');

/* arreglo de recipientes */ 
$to explode(',',$para); 

/* asunto */ 
$asunto "Prueba mail"

/* mensaje */ 
$mensaje 
<html> 
<head> 
<title>Prueba</title> 
</head> 
<body> 
<p>&iexcl;Aqu&iacute; est&aacute;n los cumplea&ntilde;os que llegan en Agosto!</p> 
<table> 
<tr> 
  <th>Persona</th><th>D&iacute;a</th><th>Mes</th><th>A&ntilde;o</th> 
</tr> 
<tr> 
  <td>Juan</td><td>3</td><td>August</td><td>1970</td> 
</tr> 
<tr> 
  <td>Sandra</td><td>17</td><td>August</td><td>1973</td> 
</tr> 
</table> 
</body> 
</html> 
'


for(
$i=0;$i<count($to);$i++){ 
    
$cabeceras  "MIME-Version: 1.0\r\n"
    
$cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n"
    
$cabeceras .= "To: ".$to[$i]."\r\n"
    
$cabeceras .= "From: Departamento de cobranzas <[email protected]>\r\n"
    
$cabeceras .= "Bcc: [email protected]\r\n"
    if(!
mail($to[$i], $asunto$mensaje$cabeceras)){ 
        
$contError++; 
         
        
//echo para ver cuantos no fueron enviados 
    



?>
Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #17 (permalink)  
Antiguo 28/10/2007, 22:19
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Mensaje Re: Envío de e-mail a múltiples destinatarios con PHP

¡Marvin! gracias de nuevo por tu ayuda.

probé el código y va bien, aunque extrañamente el correo solo llega a algunos destinatarios, no a todos. Supongo que esto no es problema del código ya, debe ser algún problema con el servidor de envío de correos.

Una última pregunta, ¿cómo hago para que cuando el cliente haga clic en enviar el formulario y se ejecute el código, lo redirija a la misma página,?

Gracias por todo
  #18 (permalink)  
Antiguo 28/10/2007, 22:29
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Envío de e-mail a múltiples destinatarios con PHP

Revisa aca: http://www.forosdelweb.com/f18/actua...6/#post1874222

Tambien puedes usar la funcion header("Location: tupagina.php")

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #19 (permalink)  
Antiguo 31/10/2007, 11:29
Avatar de Daam  
Fecha de Ingreso: octubre-2007
Ubicación: Planeta Tierra
Mensajes: 152
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Envío de e-mail a múltiples destinatarios con PHP

¿Cómo agrego variables en el cuerpo del mensaje ($mensaje)?
  #20 (permalink)  
Antiguo 31/10/2007, 12:08
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: Envío de e-mail a múltiples destinatarios con PHP

Bueno... eso es mas facil y te voy a poner un ejemplo aca:

Código PHP:
$arrNombres = array('Juan','Sandra');
$mensaje '  
<html>  
<head>  
<title>Prueba</title>  
</head>  
<body>  
<p>&iexcl;Aqu&iacute; est&aacute;n los cumplea&ntilde;os que llegan en Agosto!</p>  
<table>  
<tr>  
  <th>Persona</th><th>D&iacute;a</th><th>Mes</th><th>A&ntilde;o</th>  
</tr>'
;

for(
$i=0;$i<count($arrNombres);$i++){ 
    
$mensaje .= '
<tr>  
  <td>'
.$arrNombres[$i].'</td><td>3</td><td>August</td><td>1970</td>  
</tr>'
;
}
$mensaje .= '
</table>  
</body>  
</html>  
'
;

Con .= lo que haces es agregarle datos a una variable.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:48.