PHP - enviar un mensaje a multiples direcciones de correo

 
Vista:
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por zendi (1056 intervenciones) el 16/01/2015 16:51:52
Tengo este codigo para seleccionar una o todas las cuentas de correo que sean necesarias para enviar mensajes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=1234");
$correos = "SELECT cta_correo FROM propietarios ORDER BY cta_correo";
 
     Para:
     <select name="para_txt"><option value="0">[Seleccione una cuenta de correo]</option>
 
$correos = @pg_query($connect,$correos);
while($select2 = @pg_fetch_array($correos)){
            $descrip = $select2['cta_correo'];
            echo "<OPTION VALUE='$descrip'>$descrip</OPTION>";
          }
?>
        </select> <br/> <br/>

si yo elijo una se recibe por este otro codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$de = $_POST["de_txt"];
$para = $_POST["para_txt"]; 
$asunto = $_POST["asunto_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
echo $destino = $_SERVER['DOCUMENT_ROOT']."/".$_FILES["archivo_fls"]["name"];
echo $_SERVER['DOCUMENT_ROOT'];
$mensaje = $_POST["mensaje_txa"];
if(move_uploaded_file($archivo,$destino)) {
	$smtp=new PHPMailer();
	# Indicamos que vamos a utilizar un servidor SMTP 
	$smtp->IsSMTP();
	# Definimos el formato del correo con UTF-8 
	$smtp->CharSet="UTF-8";
//	$smtp->SMTPDebug = 1; 
	# autenticación contra nuestro servidor smtp 
	$smtp->SMTPAuth = true; // enable SMTP authentication
	$smtp->SMTPSecure = "tls";
	$smtp->Host = "smtp.live.com";
	// sets MAIL as the SMTP server 
	$smtp->Username = "andresmen2004@hotmail.com";
	// MAIL username
	$smtp->Password = "********";
	// MAIL password 
	$smtp->Port = 587;
	# datos de quien realiza el envio 
	$smtp->From = "andresmen2004@hotmail.com";
	// from mail 
	$smtp->FromName = "Pepe";
	// from mail name # Indicamos la dirección donde enviar el mensaje 
	$para="ald_mir@hotmail.com";
	$nameTo="Pedro";
	$smtp->AddAddress($para,$nameTo);

Pero como haria si se eligen todas las direcciones?

que logicamente debiera pasar por alli mismo.
Si alguien pudiera ayudarme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por xve (6935 intervenciones) el 17/01/2015 11:05:35
Hola Zendi, si permites seleccionar varios valores de un <select>, lo que llega no es una variable con el value, sino que llega un array de valores.

Si lo pruebas, lo veras...

Luego, tendrás que hacer un bucle que recorra todos los valores del array para ir enviando un correo a cada uno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por zendi (1056 intervenciones) el 18/01/2015 00:47:14
Hola xve, trate de imprimir la variable pero no la trajo, pero bueno lo estoy haciendo de esta manera

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
 
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];
   for(x=0; $x <= $para; x++){
 
$asunto = $_POST["asunto_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
echo $destino = $_SERVER['DOCUMENT_ROOT']."/".$_FILES["archivo_fls"]["name"];
echo $_SERVER['DOCUMENT_ROOT'];
$mensaje = $_POST["mensaje_txa"];
if(move_uploaded_file($archivo,$destino)) {
	$smtp=new PHPMailer();
	# Indicamos que vamos a utilizar un servidor SMTP 
	$smtp->IsSMTP();
	# Definimos el formato del correo con UTF-8 
	$smtp->CharSet="UTF-8";
//	$smtp->SMTPDebug = 1; 
	# autenticación contra nuestro servidor smtp 
	$smtp->SMTPAuth = true; // enable SMTP authentication
	$smtp->SMTPSecure = "tls";
	$smtp->Host = "smtp.live.com";
	// sets MAIL as the SMTP server 
	$smtp->Username = "andresmen2004@hotmail.com";
	// MAIL username
	$smtp->Password = "******";
	// MAIL password 
	$smtp->Port = 587;
	# datos de quien realiza el envio 
	$smtp->From = "andresmen2004@hotmail.com";
	// from mail 
	$smtp->FromName = "Alejon";
	// from mail name # Indicamos la dirección donde enviar el mensaje 
	$para="ald_mir@hotmail.com";
	$nameTo="Alejon";
	$smtp->AddAddress($para,$nameTo);
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por zendi (1056 intervenciones) el 18/01/2015 02:05:15
Que tal Xve, bueno creo que estoy liado en este codigo, tenia un error en las variables pero en el <select> no escojo ninguna cuenta de correo
y tengo este codigo para recorrer pero no lo hace, puedes darme una ayuda, gracias.

1
2
3
4
5
6
7
8
9
10
11
12
$para = $_POST["para_txt"];
var_dump($para);
//saco el numero de elementos
$elemento = count($para);
 
//Recorro todos los elementos
for($i=0; $i<$elemento; $i++)
      {
      //saco el valor de cada elemento
      echo $elemento[$i];
      echo "<br>";
      }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por xve (6935 intervenciones) el 19/01/2015 08:23:41
Hola Zendi, no entiendo muy bien...

En el select, indicas que seleccionen una cuenta de correo, pero no tienes preparado el select para poder seleccionar mas de una cuenta de correo... creo que por eso no te funciona el bucle. Primeramente, soluciona que en el select se puedan seleccionar varios correos.

Si no se pueden seleccionar varios, no hace falta que realices ningún bucle.

Exactamente que seleccionas en el <select>?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por zendi (1056 intervenciones) el 19/01/2015 14:28:07
Hola Xve, si en realidad no coloque el <select> disculpa. Otra cosa es que como haria para seleccionarlos todos ya en dicho <select> se puede escojer uno a la vez, fijate te muestro la imagen del formulario:

correo

tambien por supuesto ya tengo unas cuentas de correo en el <select> de esta forma:
correo

Nota: este es codigo con el cual me ayudaste con lo del subir los archivos para los correos.

este es el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
 
 
require("PHPMailer-master/class.phpmailer.php");
require("PHPMailer-master/class.smtp.php");
error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE);
 
$de = $_POST["de_txt"];
$para = $_POST["para_txt"];
 
 
//saco el numero de elementos
$longitud = count($para);
 
//Recorro todos los elementos
for($i=0; $i<count($longitud); $i++)
      {
      //saco el valor de cada elemento
        echo $array[$i];
        echo "<br>";
      }
$asunto = $_POST["asunto_txt"];
$archivo = $_FILES["archivo_fls"]["tmp_name"];
echo $destino = $_SERVER['DOCUMENT_ROOT']."/".$_FILES["archivo_fls"]["name"];
echo $_SERVER['DOCUMENT_ROOT'];
$mensaje = $_POST["mensaje_txa"];
if(move_uploaded_file($archivo,$destino)) {
	$smtp=new PHPMailer();
	# Indicamos que vamos a utilizar un servidor SMTP 
	$smtp->IsSMTP();
	# Definimos el formato del correo con UTF-8 
	$smtp->CharSet="UTF-8";
	$smtp->SMTPDebug = 1;
	# autenticación contra nuestro servidor smtp 
	$smtp->SMTPAuth = true; // enable SMTP authentication
	$smtp->SMTPSecure = "tls";
	$smtp->Host = "smtp.live.com";
	// sets MAIL as the SMTP server 
	$smtp->Username = "andresmen2004@hotmail.com";
	// MAIL username
	$smtp->Password = "*****";
	// MAIL password 
	$smtp->Port = 587;
	# datos de quien realiza el envio 
	$smtp->From = "alecuello84@hotmail.com";
	// from mail 
	$smtp->FromName = "Alejon";
	// from mail name # Indicamos la dirección donde enviar el mensaje 
	$para="raul_andone@hotmail.com";
	$nameTo="Raul";
	$smtp->AddAddress($para,$nameTo);
	$smtp->Subject = "asunto";
	$smtp->Body = "mensaje";
	$smtp->WordWrap = 50;
	$smtp->Timeout=30;
	$smtp->IsHTML(true);
	$smtp->MsgHTML("mensaje");
	$smtp->AddAttachment($destino, $_FILES["archivo_fls"]["name"]);
   if (!$smtp->Send()) {
      $respuesta ="El mensaje no se pudo enviar";
      $respuesta .="Error: " .$mail->ErrorInfo;
	  }
	  else
	  {
	  $respuesta ="El mensaje ha sido enviado";
	  }
	  }
	  elseif($_POST)
	  {
	  $respuesta = "Ocurrio un error"; }
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <style>
  form { margin: 1em auto; text-align: center; }
   span{ color: #F60; font-size: 1.5 em; } 
   </style>
</head>
<body> <b>
<?php echo $respuesta;?>
</b>
<form name="mail_frm" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]?>">
De:<input type="text" name="de_txt" /> <br/> <br/>
 
 
     Para: <select name="para_txt"><option value="0">[Seleccione una cuenta de correo]</option> <br/> <br/>
 
<?php
$connect = pg_connect("host=localhost port=5432 dbname=administra user=postgres password=movilnet");
$correos = "SELECT * FROM propietarios ORDER BY cta_correo";
 
$correos = @pg_query($connect,$correos);
while($select2 = @pg_fetch_array($correos)){
			$codigo = $select2['codigo'];
            $descrip = $select2['cta_correo'];
            echo "<OPTION VALUE='$descrip'>$descrip</OPTION>";
          }
?>
        </select> <br/> <br/>
Asunto:<input type="text" name="asunto_txt" /> <br/> <br/>
Adjuntar Archivo: <input type="file" name="archivo_fls" /> <br/> <br/>
Mensaje:<br /><textarea name= "mensaje_txa"/> </textarea> <br/> <br/>
  <input type="submit" name="enviar_btn" value="Enviar"/><br/>
  </form>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por zendi (1056 intervenciones) el 19/01/2015 14:54:46
Por supuesto estoy claro que si no escojo uno o varios elementos del arreglo es imposible que el for haga su trabajo. Pero como hariamos para que los escoja todos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 557
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por zendi (1056 intervenciones) el 19/01/2015 03:42:36
Buenas a todos podria alguien contestar por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Xavi
Val: 1.009
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

enviar un mensaje a multiples direcciones de correo

Publicado por Xavi (143 intervenciones) el 20/01/2015 17:37:42
Hola Zendi, en esta misma página he ampliado mi código de como enviar un correo a varios usuarios
http://lwp-l.com/s1884

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar