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.
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.
Sample GMail
Sample GMail
Estoy tratando de hacer andar el ejemplo GMail, pero por más que lo intento, no puedo.
He configurado el API Google segun se especifica en la ayuda de Xailer, pero creo que falta actualizar la ayuda, ya que hay algun parámetro que ya no és válido al dirigirte a https://console.developers.google.com/p ... is/library.
Tipo de aplicación 'Otro' no está, yo le le puesto 'App de escritorio'
Hay que configurar la 'Pantalla de consentimiento'...
Bien, he hecho TODO lo que he podido hacer, configurar y probar, pero sigue sin funcionar.
Dispongo del ClientID y del SecretID
En la versión que tengo mi aplicación Xailer6, me lanza la ventana donde se me piden los datos para autenticarme en Google, pero con logearme con un usuario que he dado los permisos en la Pantalla de consentimiento del API Google, me lanza el mensaje 'Es posible que el navegador o la aplicación no sean seguras. Prueba de utilizar otro navegador...' y finalmente el error 4: access denied!
Bien, lo he probado con Xailer7 PERSONAL, y después de instalar el pack Edge y reiniciar el pc...
No me llega a mostrar la ventana para loguearme en Google, que directamente me lanza el error 4: access denied!
¿Estoy haciendo alguna cosa mal???
¿Alguien está utilizando la clase TGMail ???
Para envios de mails con GMail va a ser necesario utilizar oAuth 2.0 a partir de 1 de junio, por lo que estaria bien poder utilizar esta clase para salvar este escollo.
Muchas gracias.
He configurado el API Google segun se especifica en la ayuda de Xailer, pero creo que falta actualizar la ayuda, ya que hay algun parámetro que ya no és válido al dirigirte a https://console.developers.google.com/p ... is/library.
Tipo de aplicación 'Otro' no está, yo le le puesto 'App de escritorio'
Hay que configurar la 'Pantalla de consentimiento'...
Bien, he hecho TODO lo que he podido hacer, configurar y probar, pero sigue sin funcionar.
Dispongo del ClientID y del SecretID
En la versión que tengo mi aplicación Xailer6, me lanza la ventana donde se me piden los datos para autenticarme en Google, pero con logearme con un usuario que he dado los permisos en la Pantalla de consentimiento del API Google, me lanza el mensaje 'Es posible que el navegador o la aplicación no sean seguras. Prueba de utilizar otro navegador...' y finalmente el error 4: access denied!
Bien, lo he probado con Xailer7 PERSONAL, y después de instalar el pack Edge y reiniciar el pc...
No me llega a mostrar la ventana para loguearme en Google, que directamente me lanza el error 4: access denied!
¿Estoy haciendo alguna cosa mal???
¿Alguien está utilizando la clase TGMail ???
Para envios de mails con GMail va a ser necesario utilizar oAuth 2.0 a partir de 1 de junio, por lo que estaria bien poder utilizar esta clase para salvar este escollo.
Muchas gracias.
Un Saludo,
Xevi.
Xevi.
- ignacio
- Site Admin
- Mensajes: 9309
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Sample GMail
Me temo que Google ha vuelto a cambiar todo, una vez más:
Créditos Pedro Gil:
1.6.4.7 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. Vea la siguiente
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.
Créditos Pedro Gil:
1.6.4.7 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. Vea la siguiente
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.
Re: Sample GMail
Xevi,
aparte de lo anterior, hay un cambio todavía más importante: Google ya no permite utilizar ningún navegador embebido para acceder a la cuenta. Eso significa que no se puede usar ni TWebBrowser ni TWebView para que el usuario acceda. AHora necesariamente hay que lanzar un navegador externo "reconocido" por Google (Firefox, Chrome, Edge, Safari, etc.).
En la próxima versión de Xailer ya está contemplado este cambio, pero en la actual 7.2 no. Así que, por mucho que pruebes me temo que no vas a conseguir hacerlo funcionar.
aparte de lo anterior, hay un cambio todavía más importante: Google ya no permite utilizar ningún navegador embebido para acceder a la cuenta. Eso significa que no se puede usar ni TWebBrowser ni TWebView para que el usuario acceda. AHora necesariamente hay que lanzar un navegador externo "reconocido" por Google (Firefox, Chrome, Edge, Safari, etc.).
En la próxima versión de Xailer ya está contemplado este cambio, pero en la actual 7.2 no. Así que, por mucho que pruebes me temo que no vas a conseguir hacerlo funcionar.
Re: Sample GMail
Gracias por las respuestas.
Ignacio, así es como lo he ido haciendo.
José, me temo pues que me queda apenas 3 meses de seguir utilizando el envio de mails directamente con mi aplicación.
Habrá de esperar a la versión que saqueis, ponerla a prueba y ver que cambios deberé hacer para seguir utilizando este sistema en mi aplicación.
La verdad, es que tal como lo tengo funcionando, es darle a un click y se envia el mail en un plis-plas.
Ignacio, así es como lo he ido haciendo.
José, me temo pues que me queda apenas 3 meses de seguir utilizando el envio de mails directamente con mi aplicación.
Habrá de esperar a la versión que saqueis, ponerla a prueba y ver que cambios deberé hacer para seguir utilizando este sistema en mi aplicación.
La verdad, es que tal como lo tengo funcionando, es darle a un click y se envia el mail en un plis-plas.
Un Saludo,
Xevi.
Xevi.
Re: Sample GMail
Xevi,
con la nueva versión no tienes que cambiar nada en tu código. La única diferencia la va a notar el usuario, que cuando tiene que acceder a su cuenta ahora le salta el navegador por defecto en vez de una ventana del programa con un WebBrowser
con la nueva versión no tienes que cambiar nada en tu código. La única diferencia la va a notar el usuario, que cuando tiene que acceder a su cuenta ahora le salta el navegador por defecto en vez de una ventana del programa con un WebBrowser
Re: Sample GMail
Y por cierto, usando el mismo sistema oAuth2 para autenticarse, la próxima versión de Xailer tiene también las clases TGoogleDrive y TDropbox, que permite subir y bajar archivos de las cuentas del usuario.
Esto sirve para p.ej. subir copias de seguridad directamente a la nube, sin que el usuario tenga que tener instalado el cliente de GoogleDrive o Dropbox en su ordenador. Además, es una medida extra de protección de los datos de nuestros programas frente a un ataque de ransomware, ya que si no está instalado el cliente correspondiente, el ransom no puede cifrar ningún archivo
Esto sirve para p.ej. subir copias de seguridad directamente a la nube, sin que el usuario tenga que tener instalado el cliente de GoogleDrive o Dropbox en su ordenador. Además, es una medida extra de protección de los datos de nuestros programas frente a un ataque de ransomware, ya que si no está instalado el cliente correspondiente, el ransom no puede cifrar ningún archivo
- Carlos Ortiz
- Mensajes: 872
- Registrado: Mié Jul 01, 2009 5:44 pm
- Ubicación: Argentina - Córdoba
- Contactar:
Re: Sample GMail
Interesante José, gracias
jfgimenez escribió: ↑Jue Mar 10, 2022 6:00 pm Y por cierto, usando el mismo sistema oAuth2 para autenticarse, la próxima versión de Xailer tiene también las clases TGoogleDrive y TDropbox, que permite subir y bajar archivos de las cuentas del usuario.
Esto sirve para p.ej. subir copias de seguridad directamente a la nube, sin que el usuario tenga que tener instalado el cliente de GoogleDrive o Dropbox en su ordenador. Además, es una medida extra de protección de los datos de nuestros programas frente a un ataque de ransomware, ya que si no está instalado el cliente correspondiente, el ransom no puede cifrar ningún archivo
@dbfarma
www.dbfarma.com.ar
www.dbfarma.com.ar
Re: Sample GMail
Bien, estaré atento a la próxima revisión/versión para poder testarlo.
De momento, y una alternativa que me va a servir para seguir enviando los mails directamente desde mis aplicaciones... Yahoo o Hotmail.
No utiliza oAuth 2.0 y con la seguridad SSL (y una contraseña para aplicaciones en el caso de Yahoo) funcionan perfectamente.
Será el caso de migrar/crear cuentas de correo en Yahoo/Hotmail e ir utilizando esas plataformas.
Gracias por vuestro tiempo.
De momento, y una alternativa que me va a servir para seguir enviando los mails directamente desde mis aplicaciones... Yahoo o Hotmail.
No utiliza oAuth 2.0 y con la seguridad SSL (y una contraseña para aplicaciones en el caso de Yahoo) funcionan perfectamente.
Será el caso de migrar/crear cuentas de correo en Yahoo/Hotmail e ir utilizando esas plataformas.
Gracias por vuestro tiempo.
Un Saludo,
Xevi.
Xevi.
Re: Sample GMail
Tengo un problema al enviar mensajes con Yahoo, si el texto del mensaje és en HTML
Éste cuerpo de mensaje se muestra con símbolos raros, cuandos e trata de caracteres "especiale" como letras acentuadas... no en GMail ni tampoco en Hotmail, pero SI en Yahoo.
¿Alguien puede decirme como hacer para que se vea correctamente???
Gracias por vuestro tiempo.
Éste cuerpo de mensaje se muestra con símbolos raros, cuandos e trata de caracteres "especiale" como letras acentuadas... no en GMail ni tampoco en Hotmail, pero SI en Yahoo.
¿Alguien puede decirme como hacer para que se vea correctamente???
Gracias por vuestro tiempo.
Un Saludo,
Xevi.
Xevi.
Re: Sample GMail
Bien, para lo que necesito me sirve de momento...
Para Yahoo debo parsear el texto, no así con Outlook/Hotmail
Pero por si algun cliente utiliza el mail de Yahoo, así me funciona
Código: Seleccionar todo
FUNCTION xcm_AsciiToHtml( cMsg )
//https://ascii.cl/htmlcodes.htm
Local n, nSeconds := Seconds()
cMsg := StrTran( cMsg, "’", "'" )
cMsg := StrTran( cMsg, "–", "-" ) //–
/* cMsg := StrTran( cMsg, "À", "À" ) //À
cMsg := StrTran( cMsg, "Ó", "Ó" ) //Ó
cMsg := StrTran( cMsg, "à", "à" ) //à
cMsg := StrTran( cMsg, "á", "á" ) //á
cMsg := StrTran( cMsg, "ç", "ç" ) //ç
cMsg := StrTran( cMsg, "è", "è" ) //è
cMsg := StrTran( cMsg, "é", "é" ) //é
cMsg := StrTran( cMsg, "í", "í" ) //í
cMsg := StrTran( cMsg, "ï", "ï" ) //ï
cMsg := StrTran( cMsg, "ò", "ò" ) //ò
*cMsg := StrTran( cMsg, Chr(242), "ò" ) //ò
cMsg := StrTran( cMsg, "ó", "ó" ) //ó
cMsg := StrTran( cMsg, "ü", "ü" ) //ü
*/
For n:=160 To 255
cMsg := StrTran( cMsg, Chr(n), "&#"+ToString(n)+";" )
Next
cMsg := StrTran( cMsg, "“", "“" ) //“
cMsg := StrTran( cMsg, "”", "”" ) //”
cMsg := StrTran( cMsg, "·", "•" )
cMsg := StrTran( cMsg, "€", "€" ) //€
LogDebug( Seconds() - nSeconds )
Return cMsg
Pero por si algun cliente utiliza el mail de Yahoo, así me funciona
Un Saludo,
Xevi.
Xevi.