Este projeto é uma demonstração muito básica que mostra como autenticar com OAUTH2 e enviar uma mensagem de e-mail para endereços de e-mail gmail, microsoft/office365 e hotmail.com/outlook.com/live.com. Inicialmente era apenas para Gmail (daí o nome), mas desde então foi estendido para oferecer suporte a outros provedores.
OAuth2 é um padrão aberto de autorização usado para conceder acesso a recursos protegidos por um servidor. Ele permite que um aplicativo ou serviço se autentique em um servidor de recursos e acesse recursos protegidos em nome de um usuário, sem exigir que o usuário forneça suas credenciais diretamente ao aplicativo.
Quando um usuário deseja acessar seu email usando um cliente de email ou outro aplicativo, o aplicativo pode usar o OAuth2 para se autenticar no serviço de email e solicitar acesso ao email do usuário. O usuário é então solicitado a fazer login em sua conta de e-mail e conceder acesso ao aplicativo. Depois que o acesso for concedido, o aplicativo poderá usar o token de acesso OAuth2 para se autenticar no serviço de e-mail e acessar o e-mail do usuário.
Usar o OAuth2 para autenticação traz vários benefícios. Ele permite que os usuários concedam acesso ao seu e-mail sem compartilhar suas credenciais de login com o aplicativo, o que ajuda a proteger sua privacidade e segurança. Também torna mais fácil para os usuários acessarem seus e-mails a partir de vários dispositivos e aplicativos, pois eles só precisam conceder acesso uma vez e podem então usar o token de acesso OAuth2 para se autenticar no serviço de e-mail a partir de qualquer dispositivo.
Você precisará criar um arquivo chamado Globals.pas que contém as seguintes constantes
google_clientid
google_clientsecret Para obtê-los, acesse https://console.cloud.google.com/apis/credentials
conta_cliente_google
microsoft_clientid
microsoft_clientaccount Para obtê-los, acesse https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade A Microsoft também precisará de várias permissões de aplicativo, conforme mostrado abaixo
clientesenviarparaendereço
nome do cliente
Este projeto requer OpenSSL. Você pode encontrar os arquivos necessários em https://github.com/IndySockets/OpenSSL-Binaries
Obrigado
Geoffrey Smith