Este proyecto es una demostración muy básica que muestra cómo autenticarse con OAUTH2 y enviar un mensaje de correo electrónico para direcciones de correo electrónico de gmail, microsoft/office365 y hotmail.com/outlook.com/live.com. Inicialmente era sólo para Gmail (de ahí el nombre), pero desde entonces se ha ampliado para admitir otros proveedores.
OAuth2 es un estándar abierto de autorización que se utiliza para otorgar acceso a recursos protegidos por un servidor. Permite que una aplicación o servicio se autentique con un servidor de recursos y acceda a recursos protegidos en nombre de un usuario, sin requerir que el usuario proporcione sus credenciales directamente a la aplicación.
Cuando un usuario desea acceder a su correo electrónico mediante un cliente de correo electrónico u otra aplicación, la aplicación puede usar OAuth2 para autenticarse con el servicio de correo electrónico y solicitar acceso al correo electrónico del usuario. Luego se solicita al usuario que inicie sesión en su cuenta de correo electrónico y otorgue acceso a la aplicación. Una vez que se otorga el acceso, la aplicación puede usar el token de acceso OAuth2 para autenticarse con el servicio de correo electrónico y acceder al correo electrónico del usuario.
Usar OAuth2 para la autenticación tiene varios beneficios. Permite a los usuarios otorgar acceso a su correo electrónico sin compartir sus credenciales de inicio de sesión con la aplicación, lo que ayuda a proteger su privacidad y seguridad. También facilita que los usuarios accedan a su correo electrónico desde múltiples dispositivos y aplicaciones, ya que solo necesitan otorgar acceso una vez y luego pueden usar el token de acceso OAuth2 para autenticarse con el servicio de correo electrónico desde cualquier dispositivo.
Deberá crear un archivo llamado Globals.pas que contenga las siguientes constantes
google_clientid
google_clientsecret Para obtenerlos, vaya a https://console.cloud.google.com/apis/credentials
cuenta_cliente_google
microsoft_clientid
microsoft_clientaccount Para obtenerlos, vaya a https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade Microsoft también necesitará varios permisos de aplicaciones como se muestra a continuación.
clientesenviaradirección
nombre de cliente
Este proyecto requiere OpenSSL. Puede encontrar los archivos necesarios en https://github.com/IndySockets/OpenSSL-Binaries
Gracias
Geoffrey Smith