Diferencia entre revisiones de «SIU-Guarani/Version3.19.0/envio-email-gmail-xoauth2»

De SIU
Saltar a: navegación, buscar
(Página creada con «== Notificador == En esta sección se explican aspectos técnicos del '''Notificador'''. == 1. Cantidad máxima de destinatarios por email == A través del parámetro...»)
 
m
 
(No se muestran 11 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
== Notificador ==
+
== Envío de email con Gmail vía XOAUTH2 ==
  
En esta sección se explican aspectos técnicos del '''Notificador'''.  
+
En esta sección se explica como enviar emails con Gmail vía XOAUTH2.  
  
== 1. Cantidad máxima de destinatarios por email  ==
+
== [[#obtener-credenciales-XOAUTH2|1. Obtener credenciales de XOAUTH2]] ==
  
A través del parámetro [http://documentacion.siu.edu.ar/wiki/SIU-Guarani/Version3.19.0/configuracion_del_sistema/parametros email_cant_max_destinatarios] podemos configurar la manera en la cual se '''paginaran''' los destinatarios en diferentes emails.
+
Seguir [https://github.com/PHPMailer/PHPMailer/wiki/Using-Gmail-with-XOAUTH2 estos pasos] para generar el '''Client ID (ID de cliente)''' y '''Client secret (Secreto del cliente)'''.
  
Ejemplo, si tenemos que enviar un email a 300 destinatarios, y el parámetro '''email_cant_max_destinatarios''' esta configurado en 100, se enviaran 3 emails con 100 destinatarios cada uno.
+
== [[#generar-refresh-token|2. Generar Refresh Token]] ==
Si dicho parámetro esta configurado en 0 se enviará un solo email con los 300 destinatarios.
 
  
== 2. Envío de email ==
+
2.1) En '''SIU-Guaraní Gestión''' editar el archivo '''vendor/phpmailer/phpmailer/get_oauth_token.php'''configurando las variables '''$clientId''' y '''$clientSecret''' con las credenciales generadas en el paso anterior.
  
Al enviar emails con el '''Notificador''' estos mismos no se envían directamente, sino que se encolan en la tabla '''jobs''' para luego ser desencolados y enviados por un '''Worker'''.<br>
+
También reemplazar '''require 'vendor/autoload.php';''' por '''require '../../autoload.php';'''
Para invocar a dicho '''Worker''' se debe ejecutar el siguiente comando en Guaraní Gestión:
+
 
 +
2.2) En '''SIU-Guaraní Gestión''' editar el archivo '''instalacion/toba.conf''' agregando la siguiente entrada, seguidamente reiniciar Apache:
  
Para desencolar y enviar todos los emails:
 
 
<source lang="apache" enclose="div">
 
<source lang="apache" enclose="div">
bin/guarani enviar_emails_notificador
+
        #Configuración de Gmail vía XOAUTH2
</source>
+
Alias /phpmailer "<PATH-GESTION>/vendor/phpmailer/phpmailer"
 +
<Directory <PATH-GESTION>/vendor/phpmailer/phpmailer>
  
Para desencolar y enviar de a 12 emails:
+
                DirectoryIndex get_oauth_token.php
<source lang="apache" enclose="div">
 
bin/guarani enviar_emails_notificador --cantidad 12
 
</source>
 
  
Para desencolar y enviar de a 21 emails (versión reducida):
+
<IfModule !mod_access_compat.c>
<source lang="apache" enclose="div">
+
#Apache 2.2.x
bin/guarani enviar_emails_notificador -c 21
+
##Piense en actualizar la version del web server a Apache 2.4.x al menos
 +
##Si desea seguir en esta version, descomente las siguientes lineas
 +
# Order allow,deny
 +
# Allow from all
 +
</IfModule>
 +
<IfModule mod_access_compat.c>
 +
#Apache 2.3.x/2.4.x  back-comp (deprecated)
 +
Order allow,deny
 +
Allow from all
 +
</IfModule>
 +
<IfModule mod_authz_core.c>
 +
#Apache 2.4.x
 +
Require all granted
 +
</IfModule>
 +
</Directory>
 
</source>
 
</source>
  
'''NOTA''': Se debe '''tener los permisos necesarios''' en la carpeta donde se almacenan los '''archivos adjuntos''' que irán en el email, en caso contrario el email llegara pero con el cuerpo vacío.
+
2.3) En la [https://console.cloud.google.com/project consola de desarrollo de Google] configurar la '''URI de redireccionamiento autorizados''' con lo siguiente '''http://<URL-GESTION>/phpmailer/get_oauth_token.php''':
Otra opción cuando ocurre este caso seria correr el comando como '''root''' (sudo).
 
  
Se debe utilizar una herramienta como '''Cron''' o '''Crontab''' para que dicho comando se ejecute cada cierto periodo de tiempo.  
+
<gallery widths="804" heights="823">
 +
Archivo:Gmail XOAUTH2 URI redireccionamiento autorizados.png|Gmail XOAUTH2 - URI_redireccionamiento_autorizados
 +
</gallery>
  
== 3. Depuración del envío de email ==
+
2.4) Ingresar a la URL '''http://<URL-GESTION>/phpmailer/get_oauth_token.php''', elegir la opción '''Google''' y generar el '''Refresh Token'''.
 
 
Si los emails no se están pudiendo enviar, se puede depurar agregando la directiva '''smtp_debug_nivel''' en el archivo '''instalacion/instalacion.ini''', ej:
 
 
 
<source lang="apache" enclose="div">
 
smtp_debug_nivel = "<nivel_debug>"
 
</source>
 
  
'''<nivel_debug>''' puede ser un valor de 0 a 4, donde 0 no muestra información de debug y 4 muestra todos los mensajes de debug.
+
2.5) Deshacer lo realizado en el punto 2.2) para que la URL '''http://<URL-GESTION>/phpmailer/get_oauth_token.php''' no quede disponible, solamente se utiliza para generar el '''Refresh Token''' por única vez.
  
 
[[SIU-Guarani/Version3.19.0/consideraciones_tecnicas|< Volver]]
 
[[SIU-Guarani/Version3.19.0/consideraciones_tecnicas|< Volver]]

Revisión actual del 15:02 19 may 2021

Envío de email con Gmail vía XOAUTH2

En esta sección se explica como enviar emails con Gmail vía XOAUTH2.

1. Obtener credenciales de XOAUTH2

Seguir estos pasos para generar el Client ID (ID de cliente) y Client secret (Secreto del cliente).

2. Generar Refresh Token

2.1) En SIU-Guaraní Gestión editar el archivo vendor/phpmailer/phpmailer/get_oauth_token.phpconfigurando las variables $clientId y $clientSecret con las credenciales generadas en el paso anterior.

También reemplazar require 'vendor/autoload.php'; por require '../../autoload.php';

2.2) En SIU-Guaraní Gestión editar el archivo instalacion/toba.conf agregando la siguiente entrada, seguidamente reiniciar Apache:

        #Configuración de Gmail vía XOAUTH2
        Alias /phpmailer "<PATH-GESTION>/vendor/phpmailer/phpmailer"
        <Directory <PATH-GESTION>/vendor/phpmailer/phpmailer>

                DirectoryIndex get_oauth_token.php

                <IfModule !mod_access_compat.c>
                #Apache 2.2.x
                ##Piense en actualizar la version del web server a Apache 2.4.x al menos
                ##Si desea seguir en esta version, descomente las siguientes lineas
                #       Order allow,deny
                #       Allow from all
                </IfModule>
                <IfModule mod_access_compat.c>
                        #Apache 2.3.x/2.4.x  back-comp (deprecated)
                        Order allow,deny
                        Allow from all
                </IfModule>
                <IfModule mod_authz_core.c>
                        #Apache 2.4.x
                        Require all granted
                </IfModule>
        </Directory>

2.3) En la consola de desarrollo de Google configurar la URI de redireccionamiento autorizados con lo siguiente http://<URL-GESTION>/phpmailer/get_oauth_token.php:

2.4) Ingresar a la URL http://<URL-GESTION>/phpmailer/get_oauth_token.php, elegir la opción Google y generar el Refresh Token.

2.5) Deshacer lo realizado en el punto 2.2) para que la URL http://<URL-GESTION>/phpmailer/get_oauth_token.php no quede disponible, solamente se utiliza para generar el Refresh Token por única vez.

< Volver