Ver Mensaje Individual
  #9 (permalink)  
Antiguo 08/03/2015, 14:08
Avatar de manyblue
manyblue
 
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Envio masivo boletines con phpmailer smtp gmail

Voy mejorando algo.
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:
Código PHP:
<?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 "[email protected]";
$mail->FromName "Nombredelqueenvia";
$mail->addReplyTo('[email protected]''Nombredelqueenvia');
/*------------------------------------------------------------------------------------------*/
$host 'smtp.gmail.com';
$username '[email protected]';
$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 ??
Pero xD ya me envia más de un boletín.
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

Última edición por manyblue; 08/03/2015 a las 14:58