/** * EnviarCorreo($AplicacionEnvia) * Proceso de envio de correo electronico * * @param $AplicacionEnvia: se selecciona la aplicacion correspondiente para la configuracion * de las opciones del mail **/ public function EnviarCorreo($AplicacionEnvia) { //Leemos el archivo de configuraciones de bases de datos $DatosConfigCorreo = SysMisNeural::CargarArchivoYAMLAplicacion('Configuracion/ConfiguracionCorreo.yaml'); //Generamos la variable de las aplicaciones $Aplicaciones = $DatosConfigCorreo['APLICACIONES']; //Validamos la configuración correspondiente if (array_key_exists($AplicacionEnvia, $Aplicaciones)) { if ($DatosConfigCorreo['APLICACIONES'][$AplicacionEnvia]['FUNCION_MAIL'] == 'DESHABILITADO') { //Generamos el instanciamiento del PHPMailer $Mail = new PHPMailer(true); //Instanciamos las opciones de envio de correos $Mail->IsSMTP(); $Mail->IsHTML(); //Validamos las configuraciones las leemos y las imprimimos foreach ($DatosConfigCorreo['APLICACIONES'][$AplicacionEnvia]['CONFIGURACION'] as $Key => $Value) { $Mail->{$Key} = $Value; } try { //Validamos si se activa el Debug para el SMTP if (isset($this->SMTPDebugValid)) { $Mail->SMTPDebug = $this->SMTPDebugValid; } //Generamos la opcion de responder este mensaje a este destino $Mail->AddReplyTo($this->ResponderMensaje['CORREO'], $this->ResponderMensaje['NOMBRE']); //Generamos a los destinatarios que se les envia este correo titular if (isset($this->EnviarCorreoTo)) { if (count($this->EnviarCorreoTo) >= 1) { for ($i = 0; $i < count($this->EnviarCorreoTo); $i++) { $Mail->AddAddress($this->EnviarCorreoTo[$i]['CORREO'], $this->EnviarCorreoTo[$i]['NOMBRE']); } } } //Generamos los destinatarios de copia de este correo if (isset($this->EnviarCorreoCC)) { if (count($this->EnviarCorreoCC) >= 1) { for ($j = 0; $j < count($this->EnviarCorreoCC); $j++) { $Mail->AddCC($this->EnviarCorreoCC[$j]['CORREO'], $this->EnviarCorreoCC[$j]['NOMBRE']); } } } //Generamos los destinatarios de copia oculta if (isset($this->EnviarCorreoCCO)) { if (count($this->EnviarCorreoCCO) >= 1) { for ($l = 0; $l < count($this->EnviarCorreoCCO); $l++) { $Mail->AddBCC($this->EnviarCorreoCCO[$l]['CORREO'], $this->EnviarCorreoCCO[$l]['NOMBRE']); } } } //Generamos el Emisor del correo $Mail->SetFrom($DatosConfigCorreo['APLICACIONES'][$AplicacionEnvia]['CONFIGURACION']['Username'], $this->NombreEmisor); //Generamos el asunto correspondiente $Mail->Subject = $this->AsuntoMail; //validamos si enviamos mensaje alternativo que no soporte html if (isset($this->MensajeAlternativo)) { $Mail->AltBody($this->MensajeAlternativo); } //Generamos el Mensaje HTML correspondiente $Mail->MsgHTML($this->MensajeGeneralHTML); //validamos los datos adjuntos correspondientes if (isset($this->ArchAdjuntos)) { if (count($this->ArchAdjuntos) >= 1) { for ($h = 0; $h < count($this->ArchAdjuntos); $h++) { $Mail->AddAttachment($this->ArchAdjuntos[$h]); } } } //Enviamos el correo correspondiente $Mail->Send(); } catch (phpmailerException $e) { //Errores de PhpMailer echo $e->errorMessage(); } catch (Exception $e) { //Errores de cualquier otra cosa. echo $e->getMessage(); } } elseif ($DatosConfigCorreo['APLICACIONES'][$AplicacionEnvia]['FUNCION_MAIL'] == 'HABILITADO') { // Content-type se Adiciona $Cabeceras = 'MIME-Version: 1.0' . "\r\n"; $Cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; //Generamos a los destinatarios que se les envia este correo titular if (isset($this->EnviarCorreoTo)) { if (count($this->EnviarCorreoTo) >= 1) { for ($i = 0; $i < count($this->EnviarCorreoTo); $i++) { $DatosEnviarTo[] = $this->EnviarCorreoTo[$i]['CORREO']; } //Organizamos los correos correspondientes $CabeceraEnviarTo = implode(", ", $DatosEnviarTo); //Generamos la cabecera correspondiente $Cabeceras .= 'To: ' . $CabeceraEnviarTo . "\r\n"; } } //Generamos los destinatarios de copia de este correo if (isset($this->EnviarCorreoCC)) { if (count($this->EnviarCorreoCC) >= 1) { for ($j = 0; $j < count($this->EnviarCorreoCC); $j++) { $DatosEnviarCC[] = $this->EnviarCorreoCC[$j]['CORREO']; } //Organizamos los correos correspondientes $CabeceraEnviarCC = implode(", ", $DatosEnviarCC); //Generamos la cabecera correspondiente $Cabeceras .= 'Cc: ' . $CabeceraEnviarCC . "\r\n"; } } //Generamos los destinatarios de copia oculta if (isset($this->EnviarCorreoCCO)) { if (count($this->EnviarCorreoCCO) >= 1) { for ($l = 0; $l < count($this->EnviarCorreoCCO); $l++) { $DatosEnviarBCC[] = $this->EnviarCorreoCCO[$l]['CORREO']; } //Organizamos los correos correspondientes $CabeceraEnviarBCC = implode(", ", $DatosEnviarBCC); //Generamos la cabecera correspondiente $Cabeceras .= 'Bcc: ' . $CabeceraEnviarBCC . "\r\n"; } } //Enviamos el correo correspondiente mail($CabeceraEnviarTo, $this->AsuntoMail, $this->MensajeGeneralHTML, $Cabeceras); } else { echo 'ACTUALMENTE LA CONFIGURACION DE CORREO DEBE VALIDARSE, VALIDE QUE LA APLICACION DEFAULT ESTE BIEN CONFIGURADA O SELECCIONE UNA APLICACION CONFIGURADA'; exit; } } else { if ($DatosConfigCorreo['APLICACIONES']['DEFAULT']['FUNCION_MAIL'] == 'DESHABILITADO') { //Generamos el instanciamiento del PHPMailer $Mail = new PHPMailer(true); //Especificamos que utilizaremos SMTP $Mail->IsSMTP(); try { //Validamos si se activa el Debug para el SMTP if (isset($this->SMTPDebugValid)) { $Mail->SMTPDebug = $this->SMTPDebugValid; } //Validamos las configuraciones las leemos y las imprimimos foreach ($DatosConfigCorreo['APLICACIONES']['DEFAULT']['CONFIGURACION'] as $Key => $Value) { $Mail->{$Key} = $Value; } //Generamos la opcion de responder este mensaje a este destino $Mail->AddReplyTo($this->ResponderMensaje['CORREO'], $this->ResponderMensaje['NOMBRE']); //Generamos a los destinatarios que se les envia este correo titular if (isset($this->EnviarCorreoTo)) { if (count($this->EnviarCorreoTo) >= 1) { for ($i = 0; $i < count($this->EnviarCorreoTo); $i++) { $Mail->AddAddress($this->EnviarCorreoTo[$i]['CORREO'], $this->EnviarCorreoTo[$i]['NOMBRE']); } } } //Generamos los destinatarios de copia de este correo if (isset($this->EnviarCorreoCC)) { if (count($this->EnviarCorreoCC) >= 1) { for ($j = 0; $j < count($this->EnviarCorreoCC); $j++) { $Mail->AddCC($this->EnviarCorreoCC[$j]['CORREO'], $this->EnviarCorreoCC[$j]['NOMBRE']); } } } //Generamos los destinatarios de copia oculta if (isset($this->EnviarCorreoCCO)) { if (count($this->EnviarCorreoCCO) >= 1) { for ($l = 0; $l < count($this->EnviarCorreoCCO); $l++) { $Mail->AddBCC($this->EnviarCorreoCCO[$l]['CORREO'], $this->EnviarCorreoCCO[$l]['NOMBRE']); } } } //Generamos el Emisor del correo $Mail->SetFrom($DatosConfigCorreo['APLICACIONES']['DEFAULT']['CONFIGURACION']['Username'], $this->NombreEmisor); //Generamos el asunto correspondiente $Mail->Subject = $this->AsuntoMail; //validamos si enviamos mensaje alternativo que no soporte html if (isset($this->MensajeAlternativo)) { $Mail->AltBody($this->MensajeAlternativo); } //Generamos el Mensaje HTML correspondiente $Mail->MsgHTML($this->MensajeGeneralHTML); //validamos los datos adjuntos correspondientes if (isset($this->ArchAdjuntos)) { if (count($this->ArchAdjuntos) >= 1) { for ($h = 0; $h < count($this->ArchAdjuntos); $h++) { $Mail->AddAttachment($this->ArchAdjuntos[$h]); } } } //Enviamos el correo correspondiente $Mail->Send(); } catch (phpmailerException $e) { //Errores de PhpMailer echo $e->errorMessage(); } catch (Exception $e) { //Errores de cualquier otra cosa. echo $e->getMessage(); } } elseif ($DatosConfigCorreo['APLICACIONES']['DEFAULT']['FUNCION_MAIL'] == 'HABILITADO') { // Content-type se Adiciona $Cabeceras = 'MIME-Version: 1.0' . "\r\n"; $Cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; //Generamos a los destinatarios que se les envia este correo titular if (isset($this->EnviarCorreoTo)) { if (count($this->EnviarCorreoTo) >= 1) { for ($i = 0; $i < count($this->EnviarCorreoTo); $i++) { $DatosEnviarTo[] = $this->EnviarCorreoTo[$i]['CORREO']; } //Organizamos los correos correspondientes $CabeceraEnviarTo = implode(", ", $DatosEnviarTo); //Generamos la cabecera correspondiente $Cabeceras .= 'To: ' . $CabeceraEnviarTo . "\r\n"; } } //Generamos los destinatarios de copia de este correo if (isset($this->EnviarCorreoCC)) { if (count($this->EnviarCorreoCC) >= 1) { for ($j = 0; $j < count($this->EnviarCorreoCC); $j++) { $DatosEnviarCC[] = $this->EnviarCorreoCC[$j]['CORREO']; } //Organizamos los correos correspondientes $CabeceraEnviarCC = implode(", ", $DatosEnviarCC); //Generamos la cabecera correspondiente $Cabeceras .= 'Cc: ' . $CabeceraEnviarCC . "\r\n"; } } //Generamos los destinatarios de copia oculta if (isset($this->EnviarCorreoCCO)) { if (count($this->EnviarCorreoCCO) >= 1) { for ($l = 0; $l < count($this->EnviarCorreoCCO); $l++) { $DatosEnviarBCC[] = $this->EnviarCorreoCCO[$l]['CORREO']; } //Organizamos los correos correspondientes $CabeceraEnviarBCC = implode(", ", $DatosEnviarBCC); //Generamos la cabecera correspondiente $Cabeceras .= 'Bcc: ' . $CabeceraEnviarBCC . "\r\n"; } } //Enviamos el correo correspondiente mail($CabeceraEnviarTo, $this->AsuntoMail, $this->MensajeGeneralHTML, $Cabeceras); } else { echo 'ACTUALMENTE LA CONFIGURACION DE CORREO DEBE VALIDARSE, VALIDE QUE LA APLICACION DEFAULT ESTE BIEN CONFIGURADA O SELECCIONE UNA APLICACION CONFIGURADA'; exit; } } }
/** * self::ConfigurarPHPMailer($Configuraciones = false); * Generamos el proceso de envio de correo por PHPMailer * */ private function ConfigurarPHPMailer($Configuraciones = false) { if ($Configuraciones) { //Generamos el instanciamiento del PHPMailer $Mail = new PHPMailer(true); //Instanciamos las opciones de envio de correos $Mail->IsSMTP(); $Mail->IsHTML(); //Validamos las configuraciones las leemos y las imprimimos foreach ($Configuraciones as $Key => $Value) { $Mail->{$Key} = $Value; } try { //Validamos si se activa el Debug para el SMTP if (isset($this->SMTPDebugValid)) { $Mail->SMTPDebug = $this->SMTPDebugValid; } //Generamos la opcion de responder este mensaje a este destino $Mail->AddReplyTo($this->ResponderMensaje['CORREO'], $this->ResponderMensaje['NOMBRE']); //Generamos a los destinatarios que se les envia este correo titular if (isset($this->EnviarCorreoTo)) { if (count($this->EnviarCorreoTo) >= 1) { for ($i = 0; $i < count($this->EnviarCorreoTo); $i++) { $Mail->AddAddress($this->EnviarCorreoTo[$i]['CORREO'], $this->EnviarCorreoTo[$i]['NOMBRE']); } } } //Generamos los destinatarios de copia de este correo if (isset($this->EnviarCorreoCC)) { if (count($this->EnviarCorreoCC) >= 1) { for ($j = 0; $j < count($this->EnviarCorreoCC); $j++) { $Mail->AddCC($this->EnviarCorreoCC[$j]['CORREO'], $this->EnviarCorreoCC[$j]['NOMBRE']); } } } //Generamos los destinatarios de copia oculta if (isset($this->EnviarCorreoCCO)) { if (count($this->EnviarCorreoCCO) >= 1) { for ($l = 0; $l < count($this->EnviarCorreoCCO); $l++) { $Mail->AddBCC($this->EnviarCorreoCCO[$l]['CORREO'], $this->EnviarCorreoCCO[$l]['NOMBRE']); } } } //Generamos el Emisor del correo $Mail->SetFrom($Configuraciones['Username'], $this->NombreEmisor); //Generamos el asunto correspondiente $Mail->Subject = $this->AsuntoMail; //validamos si enviamos mensaje alternativo que no soporte html if (isset($this->MensajeAlternativo)) { $Mail->AltBody($this->MensajeAlternativo); } //Generamos el Mensaje HTML correspondiente $Mail->MsgHTML($this->MensajeGeneralHTML); //validamos los datos adjuntos correspondientes if (isset($this->ArchAdjuntos)) { if (count($this->ArchAdjuntos) >= 1) { for ($h = 0; $h < count($this->ArchAdjuntos); $h++) { $Mail->AddAttachment($this->ArchAdjuntos[$h]); } } } //Enviamos el correo correspondiente $Mail->Send(); } catch (phpmailerException $e) { //Errores de PhpMailer return $e->errorMessage(); } catch (Exception $e) { //Errores de cualquier otra cosa. return $e->getMessage(); } } }