Example #1
0
 /**
  * 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;
         }
     }
 }
Example #2
0
 /**
  * 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();
         }
     }
 }