ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙkonektatu(); $buletinak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); return $buletinak; } // Dado el ID, devuelve los datos del BOLETIN public function buletina_lortu($bolet_id='') { $buletina = 0; // Realizar CONSULTA $kontsulta = "SELECT boletin_ID,boletin_site,bidaltzailea,bidaltzailea_IP,bidaltze_egun,bidaltze_hila,bidaltze_urte,bidaltze_ordua,noiztik_egun,noiztik_hila,noiztik_urte,noizarte_egun,noizarte_hila,noizarte_urte,titulo_boletin,remitente_email,boletin_eu,boletin_es,boletin_en,boletin_fr,boletin_suscriptores, boletin_grupos FROM boletin WHERE boletin_ID = ?"; $balioak = array($bolet_id); $db = new Datubasea(); $db->konektatu(); $this->boletin_lista = $db->select($kontsulta,$balioak); $db->deskonektatu(); unset($db); if (count($this->boletin_lista) == 1) { $buletina = 1; } return $buletina; } // Dados los datos, envia el BOLETIN public function buletina_bidali($site,$grupo,$remitente,$remitenteIP='',$diaenvio,$mesenvio,$anoenvio,$horaenvio,$diaini,$mesini,$anoini,$diafin,$mesfin,$anofin,$tituboletin,$remitenteemail,$boletin,$suscriptores,$grupos,$idioma) { // Llamamos al modelo VALORES para sacar los valores por defecto segun SITE $val = new Valores(); $valorespordef = $val->sacarvalorespordefecto(); $siteizena_pordefecto = $valorespordef['siteizena']; $emailremitente_pordefecto = $valorespordef['email_remitente']; $emaildestinatario_pordefecto = $valorespordef['email_destinatario']; unset($val); ////////////////////////////////////////////////// ENVIO DE BOLETIN ////////////////////////////////////////////////// $totalusuarios = 0; $totalsuscriptores = 0; $destinatarios_cadaenvio = 50; /////////////////////////////////////// USUARIOS DE GRUPOS DEL SITE //////////////////////////////////// if ($grupos != '') { // Si se ha seleccionado algun GRUPO del SITE para el envio // Si CASTELLANO, saco LISTADO USUARIOS if ($idioma == 1) { // Saco el LISTADO DE USUARIOS de los GRUPOS seleccionados $zebaldintza = " WHERE 1"; $balioak = array(); // GRUPO del SITE $total_grupos = substr_count($grupos, ';'); $cadagrupo = explode(";",$grupos); $zebaldintza = $zebaldintza. " AND (usuario_ID IN (SELECT usuario_grupo.usuario FROM usuario_grupo WHERE ((usuario_grupo.grupo = 0"; foreach($cadagrupo as $elgrupoID) { if ($elgrupoID != '') { // GRUPO DEL SITE $zebaldintza = $zebaldintza. " OR usuario_grupo.grupo = ?"; array_push($balioak,$elgrupoID); } } $zebaldintza = $zebaldintza. ") AND usuario_grupo.grupo IN (SELECT grupo_site.grupo FROM grupo_site WHERE grupo_site.site = ?))))"; array_push($balioak,$site); // ESTADO (ACTIVADO) $zebaldintza = $zebaldintza. " AND (usuario_egoera = 2)"; // QUE TENGA EMAIL $zebaldintza = $zebaldintza. " AND (usuario_eposta <> '')"; // QUE QUIERA NOTIFICACIONES $zebaldintza = $zebaldintza. " AND (usuario_notificacion = 1)"; // ORDEN $zebaldintza = $zebaldintza. " ORDER BY usuario_ID"; $usuarios = new Usuario(); $losusuarios = $usuarios->erabiltzaile_lista_lortu($zebaldintza,$balioak); unset($usuarios); $totalusuarios = count($losusuarios); } // Si CASTELLANO, saco LISTADO USUARIOS } // Si se ha seleccionado algun GRUPO del SITE para el envio //////////////////////////////////////// SUSCRIPTORES DEL SITE ///////////////////////////////////////// if ($suscriptores == 1) { // Si se han seleccionado SUSCRIPTORES para el envio // Saco el LISTADO DE SUSCRIPTORES en el IDIOMA indicado $zebaldintza = " WHERE 1"; $balioak = array(); // SITE $zebaldintza = $zebaldintza. " AND (suscriptor_ID IN (SELECT suscriptor FROM suscriptor_site WHERE site = ?))"; array_push($balioak,$site); // IDIOMA $zebaldintza = $zebaldintza. " AND (idioma_boletin = ?)"; array_push($balioak,$idioma); // ESTADO (ACTIVADO) $zebaldintza = $zebaldintza. " AND (estado_suscriptor = 2)"; // ORDEN $zebaldintza = $zebaldintza. " ORDER BY ano_suscripcion, mes_suscripcion, dia_suscripcion, suscriptor_ID"; $suscriptor = new Suscriptor(); $suscriptores = $suscriptor->harpidedun_lista_lortu($zebaldintza,$balioak); unset($suscriptor); $totalsuscriptores = count($suscriptores); } // Si se han seleccionado SUSCRIPTORES para el envio $totaldestinatarios = $totalusuarios + $totalsuscriptores; if ($totaldestinatarios > 0) { // Si hay algun DESTINATARIO // Envio del BOLETN date_default_timezone_set('Europe/Madrid'); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->Host = $this->host; $mail->SMTPAuth = $this->smtpauth; $mail->Username = $this->username; $mail->Password = $this->password; $mail->Port = $this->port; $mail->Timeout= $this->timeout; $mail->AltBody = $this->altbody; // Desactiva el Debugging (por defecto es 0) $mail->SMTPDebug = 0; // Recuperamos el prefijo del nombre del SITE al que luego aadiremos el nombre (desde el MODELO "Valores") $siteizena = $siteizena_pordefecto; // Sacar DATOS DEL BOLETIN // Sacar el SITE (para saber el email del DESTINATARIO segun SITE y el nombre del FROM) $aux = new Auxiliar(); $zebaldintza = " WHERE site_ID = ?"; $balioak = array($site); $sitehau = $aux->site_lista($zebaldintza,$balioak); $nombre_site = ''; $email_site = ''; if (count($sitehau) > 0) { $nombre_site = strtoupper($sitehau[0]['site_titulo']); $email_site = $sitehau[0]['site_email']; } unset($aux); // Sacar el NOMBRE DEL SITE segun el SITE en el que estemos $siteizena_SITE = $nombre_site; // Sacar el DESTINATARIO segun el SITE en el que estemos $destinatario = $emaildestinatario_pordefecto; if ($email_site != '') { $destinatario = $email_site; } // Subject del BOLETIN $asunto = $tituboletin; // Cuerpo del BOLETIN $elboletin = $boletin; $elboletin = str_replace('ININI5','"',$elboletin); $cuerpo = $elboletin; ///////////////////////////////////////////////////////////////////////////////////////////////// if ($remitenteemail == '') { $mail->From = $emailremitente_pordefecto; } if ($remitenteemail != '') { $mail->From = $remitenteemail; } $mail->FromName = $siteizena_SITE; $mail->Priority = 1; $mail->AddAddress($destinatario); $mail->Subject = $asunto; $mail->Body = $cuerpo; // Definimos AltBody por si el DESTINATARIO del CORREO no admite EMAIL con formato HTML $mail->AltBody = "Tu cliente de correo no acepta HTML, actualzalo."; //////////////////////////////////////// ENVIAR A USUARIOS //////////////////////////////////////// // Inicializar VARIABLES $nsuscrip = 0; $total_enviados = 0; $num_envio = 0; while ($nsuscrip < $totalusuarios) { // Por cada USUARIO $mail->AddBCC($losusuarios[$nsuscrip]['usuario_eposta']); if (($total_enviados == $destinatarios_cadaenvio - 1) || ($nsuscrip == $totalusuarios - 1)) { // Cada tantos USUARIOS enviamos el BOLETIN // Inicializar TOTAL ENVIADOS $total_enviados = 0; try { // Se envia el MENSAJE, si no ha habido problemas. La variable $exito tendra el valor TRUE $exito = $mail->Send(); } catch (phpmailerException $e) { echo $e->errorMessage(); // Pretty error messages from PHPMailer file_put_contents('oooopsemail.txt', "Se ha producido un error: ".$e->getMessage().PHP_EOL , FILE_APPEND); } // Limpiar LISTA BCC $mail->ClearBCCs(); $num_envio = $num_envio + 1; } $nsuscrip = $nsuscrip + 1; $total_enviados = $total_enviados + 1; } // Por cada USUARIO ////////////////////////////////////// ENVIAR A SUSCRIPTORES ////////////////////////////////////// // Inicializar VARIABLES $nsuscrip = 0; $total_enviados = 0; $num_envio = 0; while ($nsuscrip < $totalsuscriptores) { // Por cada SUSCRIPTOR // Desencriptar el EMAIL del SUSCRIPTOR para aadirlo a la lista BCC $encript = new Codigo(); $encript_id = 37; $suscriptor_email = $encript->encriptar_desencriptar_datos('decrypt',$suscriptores[$nsuscrip]['email_suscriptor'],$encript_id); unset($encript); $mail->AddBCC($suscriptor_email); if (($total_enviados == $destinatarios_cadaenvio - 1) || ($nsuscrip == $totalsuscriptores - 1)) { // Cada tantos SUSCRIPTORES enviamos el BOLETIN // Inicializar TOTAL ENVIADOS $total_enviados = 0; try { // Se envia el MENSAJE, si no ha habido problemas. La variable $exito tendra el valor TRUE $exito = $mail->Send(); } catch (phpmailerException $e) { echo $e->errorMessage(); // Pretty error messages from PHPMailer file_put_contents('oooopsemail.txt', "Se ha producido un error: ".$e->getMessage().PHP_EOL , FILE_APPEND); } // Limpiar LISTA BCC $mail->ClearBCCs(); $num_envio = $num_envio + 1; } $nsuscrip = $nsuscrip + 1; $total_enviados = $total_enviados + 1; } // Por cada SUSCRIPTOR unset($mail); } // Si hay algun DESTINATARIO } } ?>