
Envio masivo boletines con phpmailer smtp gmail
Publicado por Armando (14 intervenciones) el 09/03/2015 09:12:05
En la base de datos tengo tres suscriptores, yo mismo, con mis correos de yahoo, hotmail y gmail.
He conseguido que me envíe los boletines a mis correos de yahoo y hotmail pero no al de gmail, primero pongo el codigo y luego explico lo que creo me está pasandome.
Código:
Pongo esto:
while ($rowArray = mysql_fetch_array($ConsultaSuscripciones)) {
echo $rowArray["email_suscripcion"];
}
justo despues del while y despues del primer corchete y no me lista los tres correos de los tres suscriptores, solo dos, a los dos que me envía el boletin, yahoo y hotmail. El primer registro de la la tabla de suscriptores es el de gmail, los dos siguientes son los de yahoo y hotmail. Se que puedo mandar diariamente a través de gmail unos 100 emails.
Hago esto justo al final de la consulta de suscripciones, despues de: $totalRows_ConsultaSuscripciones = mysql_num_rows($ConsultaSuscripciones);
do {
echo $row_ConsultaSuscripciones['email_suscripcion'];
} while ($row_ConsultaSuscripciones = mysql_fetch_assoc($ConsultaSuscripciones));
y si que me lista los tres correos de los tres suscriptores.
Creo que el problema está en el array.
Alguna sugerencia ??
Tengo con phpmailer y el smtp de gmail el envío del formulario de contacto y el email que se le envía al usuario para que cambie su password cuando lo olvida y los dos van como la seda
Muchísimas gracias de antemano y un saludo: manyblue
He conseguido que me envíe los boletines a mis correos de yahoo y hotmail pero no al de gmail, primero pongo el codigo y luego explico lo que creo me está pasandome.
Código:
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
<?php
// Viene del formulario - Idioma Boletin: 1 Español, 2 English, 3 Deutsch
$varIdiomaBoletin = "0";
if (isset($_GET["idioma"])) {
$varIdiomaBoletin = $_GET["idioma"];
}
$varNombreBoletin = "0";
if (isset($_GET["nombre_boletin"])) {
$varNombreBoletin = $_GET["nombre_boletin"];
}
// Viene del formulario - Idioma Suscripcion: 1 Español, 2 English, 3 Deutsch
$varIdiomaSuscripcion = "0";
if (isset($_GET["idioma_suscripcion"])) {
$varIdiomaSuscripcion = $_GET["idioma_suscripcion"];
}
// Viene del formulario - $varEnviarSuscripcion = 1 - Enviar
$varEnviarSuscripcion = "0";
if (isset($_GET["enviar_suscripcion"])) {
$varEnviarSuscripcion = $_GET["enviar_suscripcion"];
}
mysql_select_db($database_conex_db_teldetv, $conex_db_teldetv);
$query_ConsultaBoletines = "SELECT * FROM tbl_boletin WHERE tbl_boletin.idioma LIKE '%".$varIdiomaBoletin."%' AND tbl_boletin.idioma LIKE '%".$varNombreBoletin."%'";
$ConsultaBoletines = mysql_query($query_ConsultaBoletines, $conex_db_teldetv) or die(mysql_error());
$row_ConsultaBoletines = mysql_fetch_assoc($ConsultaBoletines);
$totalRows_ConsultaBoletines = mysql_num_rows($ConsultaBoletines);
mysql_select_db($database_conex_db_teldetv, $conex_db_teldetv);
$query_ConsultaSuscripciones = "SELECT * FROM tbl_suscripciones WHERE tbl_suscripciones.idioma_suscripcion LIKE '%".$varIdiomaSuscripcion."%' AND tbl_suscripciones.enviar_suscripcion LIKE '%".$varEnviarSuscripcion."%'";
$ConsultaSuscripciones = mysql_query($query_ConsultaSuscripciones, $conex_db_teldetv) or die(mysql_error());
$row_ConsultaSuscripciones = mysql_fetch_assoc($ConsultaSuscripciones);
$totalRows_ConsultaSuscripciones = mysql_num_rows($ConsultaSuscripciones);
while ($rowArray = mysql_fetch_array($ConsultaSuscripciones)) {
// Adquirimos las variables
$dia=date("d-m-Y");
$hora=date("H:i:s");
$asunto = $row_ConsultaBoletines['nombre_boletin'];
// Idioma Boletin: 1 Español, 2 English, 3 Deutsch
if ($row_ConsultaBoletines['idioma'] = 1):
$body = "Este boletín ha sido enviado el: $dia a las: $hora horas.<br /><br />".$row_ConsultaBoletines['codigo_boletin'];
elseif ($row_ConsultaBoletines['idioma'] = 2):
$body = "This newsletter has been sent: $dia at: $hora hours.<br /><br />".$row_ConsultaBoletines['codigo_boletin_in'];
elseif ($row_ConsultaBoletines['idioma'] = 3):
$body = "Dieser Newsletter wurde gesendet: $dia um: $hora Uhr.<br /><br />".$row_ConsultaBoletines['codigo_boletin_al'];
endif;
/*--------------------------------------------------------------------------------------------*/
require_once('../includes/PHPMailer/class.phpmailer.php');
require_once('../includes/PHPMailer/class.smtp.php');
/*------------------------------------------------------------------------------------------*/
$mail = new PHPMailer();
$mail->setLanguage('es');
/*------------------------------------------------------------------------------------------*/
$mail->From = "correodedondeseenvia@loquesea.es";
$mail->FromName = "Nombredelqueenvia";
$mail->addReplyTo('correodedondeseenvia@loquesea.es', 'Nombredelqueenvia');
/*------------------------------------------------------------------------------------------*/
$host = 'smtp.gmail.com';
$username = 'micorreogmail@gmail.com';
$password = 'mipassgmail';
$port = 587;
$secure = 'tls';
/*------------------------------------------------------------------------------------------*/
$mail->IsSMTP();
$mail->Host = $host;
$mail->SMTPAuth = true;
$mail->Username = $username;
$mail->Password = $password;
$mail->Port = $port;
$mail->SMTPSecure = $secure;
/*------------------------------------------------------------------------------------------------------------*/
$mail->addAddress($rowArray['email_suscripcion'], $rowArray['nombre_suscripcion']);
/*-----------------------------------------------------------------------------------------------------------*/
$mail->isHTML(true);
$mail->CharSet = 'utf-8';
$mail->setWordWrap = 70;
/*------------------------------------------------------------------------------------------*/
$mail->Subject = $asunto;
$mail->Body = $body;
//$mail->MsgHTML($body);
$mail->AltBody = $body;
/*------------------------------------------------------------------------------------------*/
$mail->Send();
if(!$mail->Send()) {
echo $mail->ErrorInfo;
echo "Error al enviar a: " . $rowArray["email_suscripcion"] . "<br>";
}
$mail->ClearAddresses();
}
?>
Pongo esto:
while ($rowArray = mysql_fetch_array($ConsultaSuscripciones)) {
echo $rowArray["email_suscripcion"];
}
justo despues del while y despues del primer corchete y no me lista los tres correos de los tres suscriptores, solo dos, a los dos que me envía el boletin, yahoo y hotmail. El primer registro de la la tabla de suscriptores es el de gmail, los dos siguientes son los de yahoo y hotmail. Se que puedo mandar diariamente a través de gmail unos 100 emails.
Hago esto justo al final de la consulta de suscripciones, despues de: $totalRows_ConsultaSuscripciones = mysql_num_rows($ConsultaSuscripciones);
do {
echo $row_ConsultaSuscripciones['email_suscripcion'];
} while ($row_ConsultaSuscripciones = mysql_fetch_assoc($ConsultaSuscripciones));
y si que me lista los tres correos de los tres suscriptores.
Creo que el problema está en el array.
Alguna sugerencia ??
Tengo con phpmailer y el smtp de gmail el envío del formulario de contacto y el email que se le envía al usuario para que cambie su password cuando lo olvida y los dos van como la seda
Muchísimas gracias de antemano y un saludo: manyblue
Valora esta pregunta


0