Viewing file: ci_cola_de_envio.php (7.38 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php class ci_cola_de_envio extends toba_ci { protected $s__datos_filtro; protected $s__seleccion;
//---- Filtro -----------------------------------------------------------------------
function conf__filtro(toba_ei_formulario $filtro) { if (isset($this->s__datos_filtro)) { $filtro->set_datos($this->s__datos_filtro); } }
function evt__filtro__filtrar($datos) { $this->s__datos_filtro = $datos; }
function evt__filtro__cancelar() { unset($this->s__datos_filtro); }
//---- Cuadro -----------------------------------------------------------------------
function conf__cuadro(toba_ei_cuadro $cuadro) { if (isset($this->s__datos_filtro)) { $cuadro->set_datos($this->dep('datos')->tabla('colaenvio')->get_listado($this->s__datos_filtro)); } else { $cuadro->set_datos($this->dep('datos')->tabla('colaenvio')->get_listado()); } }
function evt__cuadro__eliminar($datos) { $this->dep('datos')->resetear(); $this->dep('datos')->cargar($datos); $this->dep('datos')->eliminar_todo(); $this->dep('datos')->resetear(); }
function evt__cuadro__seleccion($datos) { $this->dep('datos')->cargar($datos); $this->set_pantalla('pant_edicion'); }
function evt__cuadro__multiple($seleccion) { $this->s__seleccion = $seleccion; }
//---- Formulario -------------------------------------------------------------------
function conf__formulario(toba_ei_formulario $form) { if ($this->dep('datos')->esta_cargada()) { $form->set_datos($this->dep('datos')->tabla('colaenvio')->get()); } else { $this->pantalla()->eliminar_evento('eliminar'); } }
function evt__formulario__modificacion($datos) { $this->dep('datos')->tabla('colaenvio')->set($datos); }
function resetear() { $this->dep('datos')->resetear(); $this->set_pantalla('pant_seleccion'); }
//---- EVENTOS CI -------------------------------------------------------------------
function evt__agregar() { $this->set_pantalla('pant_edicion'); }
function evt__volver() { $this->resetear(); }
function evt__eliminar() { $this->dep('datos')->eliminar_todo(); $this->resetear(); }
function evt__guardar() { $this->dep('datos')->sincronizar(); $this->resetear(); } function evt__enviar_correos() { $cont_enviados = 0; $cont_intentos = 0; if(count($this->s__seleccion)>0){ foreach($this->s__seleccion as $seleccion){ $mensaje = $this->dep('datos')->tabla('colaenvio')->get_mensaje_colaenvio($seleccion['id_colaenvio']); if($this->enviar_mensaje($mensaje)){ $this->dep('datos')->tabla('colaenvio')->set_enviado($seleccion['id_colaenvio']); $cont_enviados++; } $cont_intentos++; } } toba::notificacion()->agregar("Se enviaron correctamente $cont_enviados de $cont_intentos correos.", "info"); } function evt__eliminar_masivo() { $cont_eliminados = 0; $cont_intentos = 0; if(count($this->s__seleccion)>0){ foreach($this->s__seleccion as $seleccion){ if($this->dep('datos')->tabla('colaenvio')->eliminar_colaenvio($seleccion['id_colaenvio'])){ $cont_eliminados++; } $cont_intentos++; } } toba::notificacion()->agregar("Se eliminaron correctamente $cont_eliminados de $cont_intentos correos.", "info"); } function evt__envio_masivo() { $filtro = $this->s__datos_filtro; $filtro['envios_maximo'] = 50; $filtro['incluir_enviados'] = false; $seleccion = $this->dep('datos')->tabla('colaenvio')->get_listado($filtro); $cont_enviados = 0; $cont_intentos = 0; if(count($seleccion)>0){ foreach($seleccion as $mensaje){ if($this->enviar_mensaje($mensaje)){ $this->dep('datos')->tabla('colaenvio')->set_enviado($mensaje['id_colaenvio']); $cont_enviados++; } $cont_intentos++; } } toba::notificacion()->agregar("Se enviaron correctamente $cont_enviados de $cont_intentos correos.", "info"); } function enviar_mensaje($mensaje){ //----- Obtengo datos necesarios ------------------------------------------------------------ //Definimos las propiedades y llamamos a los métodos require_once('3ros/phpmailer/class.phpmailer.php'); $mail = new phpmailer();//instanciamos un objeto de la clase phpmailer $mail->PluginDir = "3ros/phpmailer/"; if(!empty($mensaje['smtpsecure'])){ $mail->SMTPSecure = $mensaje['smtpsecure']; //Gmail usa "ssl" } $mail->Mailer = $mensaje['mailer']; //servidor smtp if(!empty($mensaje['helo'])){ $mail->Helo = $mensaje['helo'];; // utl del servicio de envio del servidor smtp. Muy importante para que llegue a hotmail y otros } $mail->SMTPAuth = $mensaje['smtpauth']; //indicamos autenticación $mail->Host = $mensaje['host']; //nombre de nuestro servidor smtp ej. "mail.diariosanrafael.com.ar" $mail->Port = $mensaje['port']; $mail->Username = $mensaje['username']; //nombre de usuario y password $mail->Password = $mensaje['pass']; $mail->From = $mensaje['fromemail']; //nuestra dirección de correo y el nombre veran $mail->FromName = $mensaje['fromname']; $mail->Timeout = $mensaje['timeout']; $mail->IsHTML(true); if(!empty($mensaje['replyto'])){ $mail->AddReplyTo($mensaje['replyto'], $mensaje['fromname']); } $mail->AddAddress($mensaje['mail_address']); //dirección destino $mail->Subject = $mensaje['subjet']; //.' - '.$mensaje['idempresa_nombre']Asignamos asunto $mail->Body = $mensaje['body'];
#$mail->Body .= "<img src='http://easymailing.puntocomsa.com/mailing/1.0/set_abierto.php?id_colaenvio=".$mensaje['id_colaenvio']."' width='0' height='0' />"; $mail->AltBody = $mensaje['body_text']; if(!empty($mensaje['attached1'])){ $adjunto="../www/adjuntos/".$mensaje['attached1']; $mail->AddAttachment($adjunto, $mensaje['attached1']); } if(!empty($mensaje['attached2'])){ $adjunto="../www/adjuntos/".$mensaje['attached2']; $mail->AddAttachment($adjunto, $mensaje['attached2']); } if(!empty($mensaje['attached3'])){ $adjunto="../www/adjuntos/".$mensaje['attached3']; $mail->AddAttachment($adjunto, $mensaje['attached3']); } //se envia el mensaje, si no ha habido problemas la variable tendra el valor true $exito = $mail->Send(); if(!$exito){ $error = "Contacto ".$mensaje['mail_address'].": ".$mail->ErrorInfo; toba::notificacion()->agregar($error, "error"); return false; }else{ $mail->ClearAddresses(); return true; } }
}
?>
|