Autor Tema: Configuración de PHPMailer con OAuth2  (Leído 301 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Fernando Velarde

  • Sr. Member
  • ****
  • Mensajes: 276
    • Ver Perfil
  • Institución: Universidad Provincial de Ezeiza
  • Nombre y apellido: Fernando Velarde
  • Sistema: Guaraní 3.20.0
  • Utilizo algun sistéma del SIU: Sí
Configuración de PHPMailer con OAuth2
« on: Noviembre 03, 2021, 11:13:33 am »
Hola ,

Estoy intentando configurar el OAuth2.

Fui a obtener los tokens a
Código: [Seleccionar]
https://github.com/PHPMailer/PHPMailer/wiki/Using-Gmail-with-XOAUTH2Llegué hasta los pasos de conseguir el 'oauth2_client_id' y 'oauth2_client_secret' .

El problema lo tengo para obtener el 'oauth2_refresh_token' 

Me estaría faltando el  $redirectUri  que en el ejemplo es
$redirectUri = 'http://localhost/phpmailer/get_oauth_token.php';

En nuestra instalacion,
localhost/ es    /var/www/html/
localhost/upe   es     <path autogestion>/src/siu/www

mientras que el get_oauth_token.php  está en  <path autogestion>/vendor/phpmailer/phpmailer/get_oauth_token.php

¿Cuál debería ser la $redirectUri ?    ¿Hay algún path predefinido para acceder al PHPMailer ?

Gracias !

Siempre agradecido a los que me ayudan en este foro. No lo explicito en nuevos mensajes sólo para no generar más mensajes que no necesitan respuesta.

Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2810
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:Configuración de PHPMailer con OAuth2
« Respuesta #1 on: Noviembre 03, 2021, 03:10:03 pm »
Hola Fernando,

Yo lo que hice una vez en Guaraní Gestión fue crear un nuevo alias en instalacion/toba.conf, luego reinicias Apache:

Código: [Seleccionar]
        #Configuración de Gmail vía XOAUTH2
Alias /phpmailer "/ruta/a/gestion/vendor/phpmailer/phpmailer"
<Directory /ruta/a/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>

Luego configure el archivo vendor/phpmailer/phpmailer/get_oauth_token.php configuras las variables $clientId y $clientSecret.

Luego debes ingresar como si fuera la URL de Gestión pero cambiando el final por "/phpmailer", seguís los pasos y debería decirte el "Refresh Token".

En $redirectUri pone:
Código: [Seleccionar]
$redirectUri = 'http://<URL-SERVIDOR>/phpmailer/get_oauth_token.php';También en Authorized redirect URIs cuando creas el Client ID.

Referencia: https://github.com/PHPMailer/PHPMailer/wiki/Using-Gmail-with-XOAUTH2

Saludos.
2
« Última Modificación: Noviembre 03, 2021, 03:16:56 pm por Leonel Leonardis »

Fernando Velarde

  • Sr. Member
  • ****
  • Mensajes: 276
    • Ver Perfil
  • Institución: Universidad Provincial de Ezeiza
  • Nombre y apellido: Fernando Velarde
  • Sistema: Guaraní 3.20.0
  • Utilizo algun sistéma del SIU: Sí
Re:Configuración de PHPMailer con OAuth2
« Respuesta #2 on: Noviembre 03, 2021, 11:44:52 pm »
Gracias Leonel,

Funcionó perfecto...

En el get_oauth_token.php tuve que cambiar dos cosas

1)   línea 61  donde decía 'vendor/autoload.php'   tuve que poner '../../autoload.php'

2) en la línea de $redirectUri, no me funcionó la automática y tuve que usar la 2da manual
$redirectUri = 'http://localhost/phpmailer/get_oauth_token.php';

Como el script no lo corrí desde la misma máquina (no tengo entorno gráfico en localhost),  empezó sin problemas, pero al hacer el redirect para darme el token, por supuesto no reconocía el localhost.  Lo cambié por la IP (no tenemos el dominio todavía, y Google no me aceptaba poner IP en $redirectUri)  y me devolvió el token, que se lo agregué al config.php y funcionó sin problemas.

Supongo que si quiero usar otra cuenta para Preinscripción, tendré que hacer todos los pasos con la otra cuenta...

Yo lo hice para Autogestión en el config.php de g3w3...   En Gestión, ¿donde se pone ?

Gracias nuevamente !!!
Siempre agradecido a los que me ayudan en este foro. No lo explicito en nuevos mensajes sólo para no generar más mensajes que no necesitan respuesta.

Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2810
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:Configuración de PHPMailer con OAuth2
« Respuesta #3 on: Noviembre 04, 2021, 12:23:33 pm »
Hola Fernando, gracias por el aporte!!!

En Autogestión y Preinscripción en instalacion/config.php.

Cita
En Gestión, ¿donde se pone ?

En la operación » Administración » Modificar Parámetros del Sistema busca y configura los parámetros cuyo Código comience con email_, hay unos que comienzan con email_xoauth2_.

saludos.
2

Fernando Velarde

  • Sr. Member
  • ****
  • Mensajes: 276
    • Ver Perfil
  • Institución: Universidad Provincial de Ezeiza
  • Nombre y apellido: Fernando Velarde
  • Sistema: Guaraní 3.20.0
  • Utilizo algun sistéma del SIU: Sí
Re:Configuración de PHPMailer con OAuth2
« Respuesta #4 on: Enero 12, 2022, 11:38:08 am »
Durante la Preinscripción veníamos usando Oauth2  y todo bien... de pronto, a partir de un día,  cada vez que tocábamos el botón para  mandar el comprobante por mail al nuevo alumno, se quedaba pensando un tiempo (la estrellita girando)  entre segundos y hasta 5 / 10 minutos  (sí, minutos, cinco o diez, no cinco décimos)  hasta que aparecía el cartelito verde de mail de comprobante enviado.
La inscripción la hacía, porque mientras la "estrellita" giraba , en otro navegador ya veíamos al alumno inscripto ...

Un día se nos ocurrió volver al oauth común en vez del oauth2  y los tiempos nunca más superaron los 10 segundos...

Entiendo que el oauth2 tiene que ser superador y brindar más seguridad que lo que había antes... pero con esos tiempos era imposible trabajar...
Como era una cuestión de demora simplemente, en los logs no encontramos nada...

¿Hubo algún reporte similar ?
Siempre agradecido a los que me ayudan en este foro. No lo explicito en nuevos mensajes sólo para no generar más mensajes que no necesitan respuesta.

Leonel Leonardis

  • Moderador Global
  • *****
  • Mensajes: 2810
    • Ver Perfil
  • Institución: SIU
  • Nombre y apellido: Leonel Leonardis
  • Sistema: SIU-Guaraní
  • Utilizo algun sistéma del SIU: Sí
Re:Configuración de PHPMailer con OAuth2
« Respuesta #5 on: Enero 12, 2022, 12:10:13 pm »
Hola Fernando,

Podes probar en Preinscripción con el perfil Admin en la operación Pruebas => Probar correo, si en el archivo instalacion/config.php configuras 'smtp_debug' => SMTP::DEBUG_LOWLEVEL, te va a mostrar información de debug sobre el envío de los emails.

¿si podes pasame la información de debug así la comparo con la mía?

¿Si probas cambiando el puerto a 587 y la seguridad a TLS?
Código: [Seleccionar]
'smtp' => [
'from' => 'xxx@gmail.com',
'from_name' => 'SIU-Preinscripción',
'host' => 'smtp.gmail.com',
'seguridad' => mail::TLS,
'auth' => true,
'port' => 587,
'reply_to' => 'xxx@gmail.com',

Cita
¿Hubo algún reporte similar ?

Por ahora nadie nos reporto algo similar, lo que si encontré los siguientes posts:
https://github.com/jstedfast/MailKit/issues/394
https://support.google.com/mail/thread/25482490/gmail-is-either-taking-a-long-time-to-send-an-email-or-failing-to-send-it-no-prob-with-hotmail?hl=en

El primero dice:
Cita
I guess it suggests that GMail is throttling your connection. I did a quick google search and it looks like Google will throttle your connection if you request too much data in a short period.

Quizás tenes mucho volumen de usuarios y estas excediendo la quota de Gmail.

saludos.
4
« Última Modificación: Enero 12, 2022, 12:29:23 pm por Leonel Leonardis »