In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Retomar GMail con Xailer8.2.3

Foro público de Xailer en español
Responder
Avatar de Usuario
XeviCOMAS
Mensajes: 586
Registrado: Sab Mar 12, 2011 8:16 pm

Retomar GMail con Xailer8.2.3

Mensaje por XeviCOMAS »

Estoy intentando retomar mis pruebas con GMail y Xailer.
Ya hace un año y medio que lo tengo aparcado y sin funcionar.
Bien, me topo con el mismo problema de antaño... GMail no me llega a autenticar correctamente.
Adjunto imágenes de como tengo mi API en Google
Como lo tengo en el PRG del Sample
Lo que no se es para que sirve el Token ni que debo de poner en ese gmail.ini. Veo que se sobreescribe al enviar el mail, a mi no me llega a cambiar.
Luego las imágenes de cuando llama al navegador para autenticar...
Escoger la Cuenta...
Google no a verificado la aplicacion...
Solicitud de acceder a la cuenta...
El navegador no puede establecer conexión
Y los mensajes de Xailer que no puede identificarse


Si alguien está utilizando GMail con Xailer8 y puede darme alguna ayudita en que puedo estar haciendo mal...

Gracias.
Adjuntos
Captura de pantalla 2024-01-07 063147.png
Captura de pantalla 2024-01-07 063147.png (4.84 KiB) Visto 1014 veces
Captura de pantalla 2024-01-07 063338.png
Captura de pantalla 2024-01-07 063338.png (56.96 KiB) Visto 1014 veces
Captura de pantalla 2024-01-07 063246.png
Captura de pantalla 2024-01-07 063246.png (61.5 KiB) Visto 1014 veces
Un Saludo,
Xevi.
Avatar de Usuario
XeviCOMAS
Mensajes: 586
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por XeviCOMAS »

mas...
Adjuntos
Captura de pantalla 2024-01-07 063432.png
Captura de pantalla 2024-01-07 063432.png (26.11 KiB) Visto 1013 veces
Captura de pantalla 2024-01-07 063421.png
Captura de pantalla 2024-01-07 063421.png (36.71 KiB) Visto 1013 veces
Captura de pantalla 2024-01-07 063404.png
Captura de pantalla 2024-01-07 063404.png (7.61 KiB) Visto 1013 veces
Un Saludo,
Xevi.
Avatar de Usuario
XeviCOMAS
Mensajes: 586
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por XeviCOMAS »

últimas...
Adjuntos
Captura de pantalla 2024-01-07 063518.png
Captura de pantalla 2024-01-07 063518.png (7.68 KiB) Visto 1012 veces
Captura de pantalla 2024-01-07 063510.png
Captura de pantalla 2024-01-07 063510.png (6.32 KiB) Visto 1012 veces
Captura de pantalla 2024-01-07 063453.png
Captura de pantalla 2024-01-07 063453.png (25.21 KiB) Visto 1012 veces
Un Saludo,
Xevi.
Pedro Gil
Mensajes: 115
Registrado: Lun Ene 15, 2007 7:46 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por Pedro Gil »

Xevi,

Solo lo he mirado por encima, pero ¿qué antivirus utilizas? ¿Tienes configurado el programa como seguro para que el antivirus no lo bloquee?

Saludos.
Avatar de Usuario
XeviCOMAS
Mensajes: 586
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por XeviCOMAS »

Lo he probado con NOD32, Avast... o sin antivirus.
No llega a autenticar correctamente. Como muestro en las imágenes, hace TODOS los pasos de autenticación, pero el último paso dice que nanai!!!

Ahora estoy probando SIN autenticación, configurando la cuenta de Google con contraseña para aplicaciones poco seguras, y SIN el API.

Parece que funciona correctamente, pero me gustaría hacerlo funcionar con oAuth y su API de Google, que es como creo que debe de funcionar el ejemplo, pero NO funciona.
Un Saludo,
Xevi.
Pedro Gil
Mensajes: 115
Registrado: Lun Ene 15, 2007 7:46 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por Pedro Gil »

Xevi,

Lo he probado y sí funciona correctamente. No sé muy bien por qué no le funciona. Le añade una pequeña explicación de los pasos que debe seguir para activar el API de Gmail.

TGmailSend

NOTA: Esta clase solo funciona en modo multi-hilo. Para ello, deberá desmarcar en las Propiedades de su proyecto la librería hbvm y enlazar la librería hbvmmt.

El primer paso para poder realizar el envío es crear un Google API Console Project accediendo a la siguiente dirección de Internet: https://console.developers.google.com/p ... is/library. Desde allí deberá crear un nuevo proyecto, y una vez creado, seleccionar la opción de menú (en la barra lateral) API y servicios > Pantalla de consentimiento de OAuth. Rellene la información que se solicita y complete todos los pasos.
A continuación, seleccione la opción de menú API y servicios > Credenciales y pulse CREAR CREDENCIALES para ID de cliente OAuth. Cuando le pregunte el Tipo de aplicación, indique App de escritorio y rellene el campo Nombre.

Por cada ID de cliente OAuth Google le suministrará dos datos muy importantes que son el ClientID y el Secret ID. Estos dos valores deberá introducirlos en las propiedades cClientID y cSecretID del control TGmailSend. No obstante, hace falta un dato adicional que es el Token, del que hablaremos más adelante.
El siguiente paso es habilitar el uso de Gmail API para el proyecto recién creado. Para ello, deberá seleccionar la opción de menú API y servicios > Panel y pulsar HABILITAR API Y SERVICIOS. Después, seleccione Gmail API y pulse HABILITAR.

La primera vez que intente enviar un mensaje de correo a través de TGmailSend, el programa le mostrará al usuario la clásica página Web de inicio de sesión de Gmail pidiendo al usuario las credenciales de acceso e indicándole que un determinado servicio (su proyecto) quiere enviar un correo electrónico en su nombre. Si el usuario introduce correctamente sus credenciales y además autoriza que el proyecto envíe el correo en su nombre, el correo se debería enviar sin problemas. (Puede que le aparezca el mensaje de que no se ha podido establecer una conexión con el servidor en 127.0.0.1. Aun así, compruebe si se ha enviado y, en ese caso, ignore dicho mensaje.)

Una vez enviado el correo, se generará un Token, que se almacena en la propiedad cToken del control TGmailSend. Si antes de destruir el control, guarda dicho Token y lo asigna a la propiedad cToken antes de volver a enviar un correo, ya no se le pedirá al usuario de nuevo sus credenciales. (Vea el ejemplo \samples\gmail.) Tenga en cuenta que los token pueden caducar y por lo tanto se puede producir un error en el envío, circunstancia que deberá controlar para obtener un nuevo token.

Saludos.
Avatar de Usuario
XeviCOMAS
Mensajes: 586
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por XeviCOMAS »

Decir que el Sample viene con el proyecto enlazado con hbvm, por lo que debe de cambiarse esa lib a hbvmmt, como bien dices en la respuesta. Sería bueno que ya el Sample se actualizara el proyecto con esa lib, evitaríamos pruebas con ejemplos no funcionales.

Bien, he conseguido connectar/autenticar, me genera el token que se queda guardado en gmail.ini
Mientras esté ese ini y el token no caduque, el envio se produce al instante y todo correcto.

Si elimino ese ini, hay veces que me genera de nuevo el token y lo carga de nuevo en el ini, pero hay algunas veces, mas que menos, que NO llega a autenticar correctamente, se queda en el limbo dando vueltas y no genera el token, como tampoco envia el mail.

Habrá alguna cosilla que quede en memoria de navegador o algun rastro que se debiera de eliminar, no se.

Sigo con más pruebas.

No me genera bastante confianza para poder utilizarlo e instalarlo en mis distribuciones a mis clientes.
Debo de estar seguro de que funcione si o SI, antes de dar el salto a la versión 8.2.3

Confirmo que... SI reinicio la PC, me funciona correctamente, la autenticación és inmediata, genera el Token correctamente, funciona perfectamente.
Mientras el tojen sea válido y no elimine el ini funciona perfectamente.
Y si elimino el ini, debo reiniciar otra vez el PC para poder autenticar de nuevo.
Un Saludo,
Xevi.
Pedro Gil
Mensajes: 115
Registrado: Lun Ene 15, 2007 7:46 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por Pedro Gil »

Xevi

>
Decir que el Sample viene con el proyecto enlazado con hbvm, por lo que debe de cambiarse esa lib a hbvmmt, como bien dices en la respuesta. Sería bueno que ya el Sample se actualizara el proyecto con esa lib, evitaríamos pruebas con ejemplos no funcionales.
>

Es cierto. Tiene razón. Esperamos que esté corregido para la siguiente versión.

>
Bien, he conseguido connectar/autenticar, me genera el token que se queda guardado en gmail.ini
Mientras esté ese ini y el token no caduque, el envio se produce al instante y todo correcto.
>

Entonces, sí que le ha funcionado correctamente, ¿verdad? :)

>
Si elimino ese ini, hay veces que me genera de nuevo el token y lo carga de nuevo en el ini, pero hay algunas veces, mas que menos, que NO llega a autenticar correctamente, se queda en el limbo dando vueltas y no genera el token, como tampoco envia el mail.
>

Como se indica en la explicación del mensaje anterior, el Token es un elemento adicional al ClientID y el SecrettID que se general al enviar el correo. No lo borre. Si lo guarda y lo asigna a la propiedad cToken del control, ya no se le pedirá de al usuario de nuevo sus credenciales. No hay ningún inconveniente en guardarlo en un archivo .ini (ya que el Token sin el dato oculto del ClientID y el SecretID no sirve para nada). Ahora bien, es cierto que puede caducar y en ese caso hay que generar un nuevo token. Una forma de usarlo podrías ser así:

METHOD SendGmail() CLASS TForm1

LOCAL cToken := TIni():New( ".\gmail.ini" ):GetEntry( "GMail", "Token", "" )
LOCAL lSuccess

WITH OBJECT TGmailSend():New( Self )
:cClientId := "???????????"
:cSecretId := "??????????"
:cToken := cToken
:cTo := ::oTo:Value
:cCC := ::oCC:Value
:cBCC := ::oBCC:Value
:cSubject := ::oSubject:Value
:lHtml := ::oHtml:lChecked
:cText := ::oText:Value
:Create()
lSuccess := :Send()
IF :cToken != cToken
TIni():New( ".\gmail.ini" ):SetEntry( "GMail", "Token", :cToken ) // Nuevo token
ENDIF
END

RETURN lSuccess

Saludos.
Avatar de Usuario
XeviCOMAS
Mensajes: 586
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por XeviCOMAS »

Pedro,

Si, si, terminó funcionando.
Ahora el caso es que no se de la caducidad de ese token y que pasará cuando caduque ese token. De ahí que elimino el ini para que vuelva a generar el token, y es ahí donde se queda. Cuando se ha generado un token, por más que intente autenticarme sin el token, no se genera hasta que reinicio el pc.

Iré probando y si eso ya comento.

De momento, con el token activo va de lujo!!!

Gracias.
Un Saludo,
Xevi.
Pedro Gil
Mensajes: 115
Registrado: Lun Ene 15, 2007 7:46 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por Pedro Gil »

Xevi,

>
Ahora el caso es que no se de la caducidad de ese token y que pasará cuando caduque ese token. De ahí que elimino el ini para que vuelva a generar el token, y es ahí donde se queda. Cuando se ha generado un token, por más que intente autenticarme sin el token, no se genera hasta que reinicio el pc.
>

Desconozco la caducidad del token. Por lo que he visto, no hay una periodicidad exacta... sucede de tanto en tanto. Y lo único que ocurre es que entonces vuelven a aparecer las pantallas de inicio de confirmarción... las mismas que aparecieron por primera vez antes de que se generara el primer Token y el usuario ha de confirmar que es una aplicación segura. Es lo único (es decir, el usuario ha de repetir la misma operación que hizo la primera vez). Pero eso sucede de vez en cuando. Por eso, no termino de entender la razón de eliminar el Token del ini.

Saludos.
Avatar de Usuario
XeviCOMAS
Mensajes: 586
Registrado: Sab Mar 12, 2011 8:16 pm

Re: Retomar GMail con Xailer8.2.3

Mensaje por XeviCOMAS »

Pedro, si me está funcionando perfecto.

Lo de eliminar el token solo es por curiosidad del comportamiento una vez llegue a su caducidad, y por lo que he podido comprobar es ahí cuando se queda en el limbo, ya que el caso sería el mismo que cuando elimino el token, creo. No así si reinicio el PC.
No se, estoy unos diitas de pruebas a ver como se va comportando y a ver si caduca por si solo y veo que va a hacer.
También voy a probar de tenerlo en un par o 3 de pcs, a ver si se genera un nuevo token por máquina o como va eso.

Gracias por tu tiempo.
Un Saludo,
Xevi.
Responder