De plus en plus de fournisseurs proposent l'utilisation de comptes eMail sécurisés (SMTP/IMAP) avec une double authentification.

Cela passe par une connexion de type OAuth vers le fournisseur de la boite Mail, cette connexion fournit un token qui devra être utilisé lors de la connexion aux boites IMAP ou SMTP.

 

Voici un exemple de code :

// Exemple de connexion IMAP avec un compte gMail
// et une double authentification
OAuthCnxGoogle est un OAuth2Paramètres
gMaSessionIMAP est un emailSessionIMAP

// Paramètres du serveur IMAP.
gMaSessionIMAP.AdresseServeur = "imap.gmail.com"
gMaSessionIMAP.Option = optionSSL
gMaSessionIMAP.Port = "993"

// Paramètres de connexion OAuth
OAuthCnxGoogle..ClientID = "ID de l'application"
OAuthCnxGoogle..ClientSecret = "ID secret de l'applicaton"
OAuthCnxGoogle..URLAuth = "https://accounts.google.com/o/oauth2/auth"
OAuthCnxGoogle..URLToken = "https://accounts.google.com/o/oauth2/token"
OAuthCnxGoogle..Scope = "https://mail.google.com/"
OAuthCnxGoogle..URLRedirection = "http://localhost:9000"
OAuthCnxGoogle..TypeRéponse = "code"

// Identification OAuth

gMaSessionIMAP..AuthToken = AuthIdentifie(OAuthCnxGoogle)

// Si l'identification a réussit, il fait se connecter à la boite eMail.
SI gMaSessionIMAP..AuthToken<>Null ALORS
SI EmailOuvreSession(gMaSessionIMAP) ALORS
// Session ouverte
SINON
// Erreur d'ouverture de la session.
FIN
SINON
// Erreur d'authentification.
FIN

 

 

Avec cette nouveauté, vous allez pouvoir anticiper les obligations à venir de certains fournisseurs.

 

========== Mise à jour 28/11/2022 ==========
Une question revient régulièrement : comment ne pas avoir la page d'authentification...
Le but de la fonction AuthIdentifie est justement d'avoir la page d'authentification renvoyée par l'hébergeur de la solution d'authentification OAuth 2. Ce dernier est le seul à pouvoir autoriser ou non la connexion, afin de renvoyer le token adapté aux autorisations de l'utilisateur.
En fonction des besoins :

 

< Retour

4 commentaires

Quentin
12/04/2022 - 12:52 - Répondre
Bonjour, pour information j'ai du rajouter : gMaSessionIMAP.Nom = "monemail@gmail.com" pour que ce code fonctionne.

Cuvelier
26/10/2022 - 14:47 - Répondre
Bonjour, Comment faire avec cette méthode pour ne pas avoir la page web d'authentification ? Merci

François D
23/11/2022 - 11:42 - Répondre
même question que Cuvelier car cela pose un problème lors d'appel à un web service. Merci

Guillaume BAYLE
28/11/2022 - 12:13 - Répondre
Bonjour, un complément a été ajouté au billet afin de détailler ce point. N'hésitez pas à contacter notre support en cas de doute sur la solution à appliquer. Bons développements !

Publier un commentaire : 
Votre adresse email ne sera pas publiée