PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Erreur IMAP et OFFICE 365
Erreur IMAP et OFFICE 365
Débuté par Arnaud, 18 oct. 2022 09:39 - 39 réponses
Posté le 18 octobre 2022 - 09:39
Bonjour,

Depuis peu, j'ai une erreur lorsque je veux me connecter en IMAP sur des comptes OFFICE 365. :
Erreur=Session IMAP, accès refusé.
La dernière réponse du serveur IMAP est :
<04 NO LOGIN failed.
>
Session IMAP, accès refusé.
La dernière réponse du serveur IMAP est :
<03 NO AUTHENTICATE failed.


J'ai donc créer une application dans la console AZURE et j'ai ajouté api autorisée : mail.read.
Lorsque je me connecte j'ai ajouté la partie oauth et j'ai bien autorisé mon application à se connecter à mon compte.
Pour autant j'ai toujours le même message en retour.
Auriez-vous une idée des modifications à apporter ?

Voici un extrait de mon code :

stParam est un OAuth2Paramètres
stParam.ClientID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
stParam.URLAuth = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
stParam.URLToken = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
stParam.Scope = "Mail.Read"
stParam.TypeRéponse = oauth2TypeRéponseCode

Token est un AuthToken = AuthIdentifie(stParam)

MaSession est une emailSessionIMAP
MaSession..AdresseServeur = xxxxx
MaSession.Port = xxxxx
MaSession.Nom = xxxxx
MaSession.MotDePasse = xxxxx
MaSession.Option = optionSSL
MaSession.AuthToken = Token

EmailOuvreSession(MaSession)


Merci d'avance de votre aide
Posté le 18 octobre 2022 - 16:55
Tu as regardé l'exemple complet WD MAIL ?

Dans le scope ils mettent

"https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send"

Aymeric
Membre enregistré
287 messages
Popularité : +51 (79 votes)
Posté le 18 octobre 2022 - 17:46
L'erreur vient de la dernière mise à jour windows

Voici ce qu'il faut faire pour contourner en attendant
EmailParamètre(emailParamètreMode, 1)


--
#DKR
Posté le 19 octobre 2022 - 12:33
Merci pour l'indication de : EmailParamètre(emailParamètreMode, 1).

Malheureusement cela ne change pas mon erreur de session IMAP.
Je pense que cela intervient depuis octobre, avec les changements concernant les accès et notamment la double authentification mail.
J'ai désactivé celle-ci mais le problème perdure.

Si vous avez une autre idée, je suis preneur, surtout que cela fonctionnait bien depuis des années sans rien changer.

Merci d'avance
Posté le 20 octobre 2022 - 11:07
Bonjour,
même soucis chez nous.
Sur des comptes Office365, impossible de lire des emails en IMAP.
Que ce soit en connexion IMAP classique avec email+mot de passe (02 AUTHENTICATE ERROR) ou via un jeton OAuth (03 AUTHENTICATE ERROR).
C'est assez pénible ces erreurs...

Le paramètre EmailParamètre(emailParamètreMode, 1) résolvait parfois le soucis, mais pas le soucis actuel.

Si jamais quelqu'un a une vraie piste...

Merci
Membre enregistré
57 messages
Popularité : +9 (11 votes)
Posté le 20 octobre 2022 - 12:13
Bonjour,

J'ai déjà eu un échec "accès refusé" de EmailOuvreSession si on lui donne deux méthodes en même temps :
- le couple utilisateur/mot de passe
- ET le token.

Pour qu'elle fonctionne correctement, il faut lui donner le couple utilisateur/mot de passe OU le token.

Du moment que le token est valide la session devrait donc être ouverte avec :

MaSession est une emailSessionIMAP
MaSession..AdresseServeur = xxxxx
MaSession.Port = xxxxx
//MaSession.Nom = xxxxx
//MaSession.MotDePasse = xxxxx
MaSession.Option = optionSSL
MaSession.AuthToken = Token

Est-ce que cela débloque l'ouverture pour vous également ?
--
A+
Dev-OC
Membre enregistré
46 messages
Popularité : +4 (4 votes)
Posté le 20 octobre 2022 - 13:18
Bonjour,
Je crois que c'est le scope qui n'est pas le bon :

stParam.Scope = "https://outlook.office.com/IMAP.AccessAsUser.All"
Posté le 20 octobre 2022 - 14:41
J'utilise les scope présents dans l'exemple WD Mail :
sOAuth_Scope = "https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send"

Mais même l'exemple WD Mail ne fonctionne plus avec le compte aujourd'hui.
Impossible d erécupérer les répertoire.
J'ai un message du genre "le dossier INBOX n'existe pas" alors que si car visible en Webmail ou via Thunderbird.
Posté le 25 octobre 2022 - 09:49
J'ai l'impression que le jeton ne marche qu'une fois ou quelques heures.
La session IMAP s'ouvre bien avec un jeton tout juste obtenu.
Les emails sont bien lus.
Cependant cela ne marche plus le lendemain.
Pourtant le jeton est toujours indiqué comme valide et ne semble pas avoir besoin d'être renouvelé.
Posté le 25 octobre 2022 - 10:28
Petite mise à jour pour indiquer qu'il faut ajouter le scope suivant afin d'avoir le droit de renouveler le jeton sans repasser par le navigateur internet : offline_access

sOAuth_Scope = "https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access"


Ceci permet de détecter via le test suivant un jeton expiré et donc de le renouveler :
SI gToken.DateExpiration < DateHeureSys() ALORS
SI gToken..Actualisation <> "" ALORS
// jeton expiré et renouvelable
gToken = AuthRenouvelleToken(gToken)
SINON
Erreur("Jeton expiré non renouvelable")
FIN
FIN

à noter que dans les codes exemples, il y a souvent maintenant() au lieu de dateheuresys() mais cela donne une valeur donc compatible et le SI est donc toujours vrai, même lorsque le jeton est expiré !
Membre enregistré
81 messages
Popularité : +0 (2 votes)
Posté le 26 octobre 2022 - 15:05
Dans la même panade ici.

session imap sans token. Ne fonctionne plus depuis le 21octobre.
EmailParamètre(emailParamètreMode, 1) ne résoud pas notre pb. ;(
Posté le 27 octobre 2022 - 14:26
J'ai le même problème depuis el 21 octobre avec une authentification sans token,

Plus de connexion IMAP, l'authentification est refusée...
-> EmailParamètre(emailParamètreMode, 1) ne change rien
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 27 octobre 2022 - 14:58
Hello

En effet, Microsoft a migré ses solutions vers Oauth depuis octobre.
Ils ont largement communiqué la dessus pourtant.

Pour ma part, je suis passé sur l'API Graph ca fonctionne tout aussi bien.
Membre enregistré
81 messages
Popularité : +0 (2 votes)
Posté le 02 novembre 2022 - 14:34
DEV-OC a écrit :
Bonjour,

J'ai déjà eu un échec "accès refusé" de EmailOuvreSession si on lui donne deux méthodes en même temps :
- le couple utilisateur/mot de passe
- ET le token.

Pour qu'elle fonctionne correctement, il faut lui donner le couple utilisateur/mot de passe OU le token.

Du moment que le token est valide la session devrait donc être ouverte avec :

MaSession est une emailSessionIMAP
MaSession..AdresseServeur = xxxxx
MaSession.Port = xxxxx
//MaSession.Nom = xxxxx
//MaSession.MotDePasse = xxxxx
MaSession.Option = optionSSL
MaSession.AuthToken = Token

Est-ce que cela débloque l'ouverture pour vous également ?
--
A+
Dev-OC


Pour info, il faut laisser MaSession.Nom = xxxxx (renseigné avec l'adresse email)
Si authentification avec Token, ne pas envoyer MotDePasse.

MaSession est une emailSessionIMAP
MaSession..AdresseServeur = xxxxx
MaSession.Port = xxxxx
MaSession.Nom = xxxxx
//MaSession.MotDePasse = xxxxx
MaSession.Option = optionSSL
MaSession.AuthToken = Token
Message modifié, 02 novembre 2022 - 14:35
Posté le 03 novembre 2022 - 16:33
Bonjour,
Je suis confronté au même problème.
Malgré toutes vos remarques, impossible d'obtenir mon Token

stAuth..ClientID = "xxxxxxxxxxxxxxxxxxx"
stAuth..ClientSecret = "xxxxxxxxxxxxxxxxxxx"
stAuth..URLAuth = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
stAuth..URLToken = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
stAuth..URLRedirection = "http://localhost:9874"
stAuth..Scope = "https://outlook.office.com/IMAP.AccessAsUser.All"

J'ai un doute sur URLRedirection. Si je ne précise rien, j'ai une erreur me demande de le préciser justement.

Comment avez vous paramétrer l'appli dans Azur au niveau des URI de redirection ?

Merci pour vos précisions .
Posté le 04 novembre 2022 - 15:29
Bonjour,

j'étais confronté aussi au même problème et voici le scope qui a semblé le résoudre :
stAuth..Scope = "offline_access https://outlook.office365.com/.default"

Pour l'url de redirection à paramétrer dans Azure :

- Aller dans Azure Active Directory / Inscriptions d'application
- Ensuite dans "toutes les applications" sélectionner l'application où l'on trouve le clientID, ClientSecret,...
- Pour ajouter l'URI de redirection "http://localhost:9874" il faut cliquer sur "Authentification" puis "Ajouter un URI" dans la partie "Applications de bureau et mobiles".

Julien.
Posté le 04 novembre 2022 - 15:29
Bonjour,

j'étais confronté aussi au même problème et voici le scope qui a semblé le résoudre :
stAuth..Scope = "offline_access https://outlook.office365.com/.default"

Pour l'url de redirection à paramétrer dans Azure :

- Aller dans Azure Active Directory / Inscriptions d'application
- Ensuite dans "toutes les applications" sélectionner l'application où l'on trouve le clientID, ClientSecret,...
- Pour ajouter l'URI de redirection "http://localhost:9874" il faut cliquer sur "Authentification" puis "Ajouter un URI" dans la partie "Applications de bureau et mobiles".

Julien.
Posté le 09 novembre 2022 - 17:37
J'arrive à obtenir un token mais impossible d'ouvrir la session. Message d'erreur : "La connexion a échoué. Le serveur ne répond pas".

MaSessioniMAP est un emailSessionIMAP//emailSessionSMTP
OAuthCnx est un OAuth2Paramètres

// Paramètres de connexion OAuth
OAuthCnx.ClientID = "xxxx"
OAuthCnx.ClientSecret = "xxxx"
OAuthCnx.URLAuth = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
OAuthCnx.URLToken = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
OAuthCnx.Scope = "https://outlook.office.com/IMAP.AccessAsUser.All"

OAuthCnx.ParamètresSupplémentaires = "force_reapprove=false"
OAuthCnx.URLRedirection = "http://localhost:9874"
OAuthCnx.TypeRéponse = oauth2TypeRéponseCode

// Identification OAuth
MaSessioniMAP.AdresseServeur = "outlook.office365.com"
MaSessioniMAP.Nom = "xxxx"
MaSessioniMAP.Port = 995
MaSessioniMAP.Option = emailOptionSécuriséTLS
MaSessioniMAP.AuthToken = AuthIdentifie(OAuthCnx)

// Si l'identification a réussi, il faut se connecter à la boîte email
SI MaSessioniMAP.AuthToken <> Null ALORS
SI EmailOuvreSession(MaSessioniMAP) = Faux ALORS
// Erreur d'ouverture de session
Erreur(ErreurInfo(errComplet))
RETOUR
FIN
FIN
Posté le 09 novembre 2022 - 22:00
Après vérification avec l'exemple WDMail, voici un code fonctionnel :

MaSessionIMAP est un emailSessionIMAP
OAuthCnx est un OAuth2Paramètres

// Paramètres de connexion OAuth
OAuthCnx.ClientID = "xxxxx"
OAuthCnx.ClientSecret = "xxxxx"
OAuthCnx.URLAuth = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
OAuthCnx.URLToken = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
OAuthCnx.Scope = "https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send"
OAuthCnx.ParamètresSupplémentaires = "force_reapprove=false"
OAuthCnx.URLRedirection = "http://localhost:9000"
OAuthCnx.TypeRéponse = oauth2TypeRéponseCode

// Identification OAuth
MaSessionIMAP.AdresseServeur = "outlook.office365.com"
MaSessionIMAP.Nom = "xxxxx@domaine.com"
MaSessionIMAP.Port = 993
MaSessionIMAP.Option = optionSSL
MaSessionIMAP.AuthToken = AuthIdentifie(OAuthCnx)

// Si l'identification a réussi, il faut se connecter à la boîte email
SI MaSessionIMAP.AuthToken <> Null ALORS
SI EmailOuvreSession(MaSessionIMAP) = Vrai ALORS
Info("Connexion réussi")
SINON
// Erreur d'ouverture de session
Erreur(ErreurInfo(errComplet))
RETOUR
FIN
FIN

tabEmailNonLus est un tableau de Emails
tabEmailNonLus = EmailRécupèreTout(MaSessionIMAP, ertNonLus)
Posté le 10 novembre 2022 - 17:45
Bonjour,

J'ai essayé le même code que toi, mais à l'authentification, j'ai le warning suivant :

Erreur à l'authentification : <invalid_client
Description: AADSTS700025: Client is public so neither 'client_assertion' nor 'client_secret' should be presented
Trace Id : bb9aa029-c225-4e51-97ab-1b961bc3a500
Correlation ID: 2dd9f14c-9a3c-402a-8044-88bf1611ef61
Timestamp: 2022-11-10 16:22:46Z>
Posté le 14 novembre 2022 - 20:35
Pour ma part, le code était bon mais il m'a fallu jouer avec les autorisation via Azure :

Microsoft Graph (5) :
IMAP.AccessAsUser.All
Mail.ReadWrite
Mail.Send
SMTP.Send
User.Read

et beaucoup de essai/erreur pour le clientID et clientSecret
Posté le 06 décembre 2022 - 17:28
Bonjour à tous,

merci pour vos contributions :merci:
après des heures de recherche , je fait appel à vos retours d’expériences ...
* avec le scope :
- OAuthCnx.Scope = "https://outlook.office365.com/.default"
Je tombe systématiquement sur l'erreur :





* avec le scope :
- OAuthCnx.Scope = "https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send"

ça ne passe même pas l'authentification => Approbation administrateur requise






Je loupe quelque chose ?
Merci pour votre aide si possible
Posté le 06 décembre 2022 - 21:43
Est-ce que tu as donné les droits à ton application :

Microsoft Graph (5) :
IMAP.AccessAsUser.All
Mail.ReadWrite
Mail.Send
SMTP.Send
User.Read
Posté le 07 décembre 2022 - 11:49
oui , on as même mis le paquet :D





par contre avec le scope :
* OAuthCnx.Scope = "https://outlook.office365.com/.default"

un nouveau type de message plus prometteur :



Posté le 20 décembre 2022 - 15:19
Oui je me rappelle avoir vu ce message mais je ne me rappelle plus dans quel contexte. J'ai vu que Microsoft a proposé des "contournement" sur certaines plateforme comme JIRA pour ceux qui ont des tâches automatisé. En espérant que Windev pourra nous proposer la même chose...
Posté le 26 janvier 2023 - 16:06
avez-vous regler votre problème et si oui comment
Posté le 31 janvier 2023 - 15:42
Bonjour,

Je suis aussi sur le sujet.

Petit détail qu'il ne me semble pas avoir vu sur cet échange : il faut bien indiquer le ClientSecret, mais attention, ce n'est pas l'ID du Client Secret qu'il faut indiquer mais sa valeur (à noter que la valeur du Secret n'est visible que lors de la création du Secret sur Azure AD).

De cette manière j'ai réussi à obtenir le token, et j'en suis aussi à cette erreur :
Session IMAP, accès refusé.
Le dossier 'INBOX' n'existe pas sur le serveur.

Cordialement,
Posté le 08 février 2023 - 11:05
Bonjour,

Pour info nous avons fait appel pour ce sujet à l’assistance direct pcsoft , qui après nous avoir gracieusement décompté une bonne poignée d'heure , nous renvoie directement au support Microsoft.:p
Le support Microsoft lui nous renvoie vers la doc.... bref pb insoluble pour le moment , nous avons du partir vers un autre progiciel ..:(
Bon courage et toujours preneur si vous avez la soluce :D
Posté le 10 février 2023 - 11:44
Bonjour
J'en suis exactement au même point, une solution de votre côté ?
Posté le 10 février 2023 - 12:19
Jean-Baptiste Martineau a écrit :
Bonjour,

Je suis aussi sur le sujet.

Petit détail qu'il ne me semble pas avoir vu sur cet échange : il faut bien indiquer le ClientSecret, mais attention, ce n'est pas l'ID du Client Secret qu'il faut indiquer mais sa valeur (à noter que la valeur du Secret n'est visible que lors de la création du Secret sur Azure AD).

De cette manière j'ai réussi à obtenir le token, et j'en suis aussi à cette erreur :
Session IMAP, accès refusé.
Le dossier 'INBOX' n'existe pas sur le serveur.

Cordialement,


Bonjour
J'en suis au même point, avez-vous avancé sur le sujet ?
Cordialement
Posté le 22 février 2023 - 09:36
Bonjour,

Toujours bloqué pour la lecture de mail via emailOuvresession().

Une âme charitable pourrait mettre le bout de code nécessaire à l'authentification ?

Merci,
rémi
Posté le 01 mars 2023 - 08:46
Bonjour,
je suis aussi avec le message Inbox pas trouvé est-ce que quelqu'un a trouvé le problème.
Merci
Posté le 02 mars 2023 - 14:20
Ce n'est pas officiellement une solution mais moi aussi j'avais ce message et tout d'un coup, je ne l'avais plus. Voici une hypothèse. J'ai une tâche automatique qui doit lire plusieurs boîtes de courriels. Depuis les derniers changement de Microsoft qui nous forcent à utiliser Oauth2, la tâche lisait la première boîte sans problème mais dès que je voulais lire la deuxième, même si l'authentification avait réussi, on dirait que le token n'était pas accepté et j'avais ensuite le message : Le dossier 'INBOX' n'existe pas sur le serveur. J'ai donc forcé ma tâche de commencer par la "deuxième" boîte croyant que le problème était dans cette boîte et j'ai pu lire la boîte sans problème. Donc ce n'est pas la boîte de courriel mais bien le token qui était le problème...ou l'authentification. Maintenant, pour pouvoir lire plusieurs boîtes, l'exécutable semble ne pouvoir "traiter" qu'un token à la fois, donc en lançant l'exécutable, je donne en paramètre quelle boîte je veux lire et une fois lu, je ferme l'exécutable. J'ai donc une tâche cédulé pour chacune des boîtes. Ce n'est pas optimal mais pour l'instant, c'est le mieux que j'ai pu trouvé. Le token a une durée de 1h15 et le "refresh" du token est bon pour 14 jours. Probablement que je devrai refaire une authentification manuelle pour chacune des boîtes lorsque le 14 jours sera atteint. En espérant que ceci vous donnent des pistes. Pour ce qui est du code, voici un exemple de code fonctionnel pour moi :

PROCÉDURE traiterCourriel_Oauth2(fParmCourriel, fParmUtilisateur, fParmMDP)

srcData est une Source de Données
srcDataEml est une Source de Données
intDEMANDE est un réel
strNOEMPLOYE est une chaîne
strFichier est une chaîne
dthDateRecpt est une DateHeure
strRésultRechLDAP est une chaîne
strRésultat est une chaîne
tabDemandesCréées est un tableau de réels
strLstTicket est une chaîne
strSujet est une chaîne

intNbLigne est un entier

strMessage est une chaîne UNICODE

tabEmailNonLus est un tableau de Emails
sRepertoirePJ est une chaîne = "C:\TEMP\"

//-----------------------------------------------------------------------------------------------
RestaureToken(fParmUtilisateur)//procédure qui lit le token sauvegardé sur le poste - voir plus bas

OAuthCnx est un OAuth2Paramètres
// Paramètres de connexion OAuth
OAuthCnx.ClientID = "123456"
OAuthCnx.ClientSecret = "654321"
OAuthCnx.URLAuth = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize"
OAuthCnx.URLToken = "https://login.microsoftonline.com/common/oauth2/v2.0/token"
OAuthCnx.Scope = "https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access"
OAuthCnx.ParamètresSupplémentaires = "force_reapprove=false"
OAuthCnx.URLRedirection = "http://localhost:9000"
OAuthCnx.TypeRéponse = oauth2TypeRéponseCode

SI PAS gToken..Valide ALORS
gToken = AuthIdentifie(OAuthCnx)
SI gToken..Valide ALORS
SauvegardeToken(fParmUtilisateur)
SINON
Trace("Token invalide")
FIN
FIN
SI gToken..DateExpiration-1min < DateHeureSys() ALORS
gToken = AuthRenouvelleToken(gToken)
Trace("Token expiré")
SI gToken..Valide ALORS
SauvegardeToken(fParmUtilisateur)//procédure qui sauvegarde le token sur le poste - voir plus bas
SINON
Trace(gToken.Valeur)
FIN
FIN

SI PAS gToken..Valide ALORS
Trace("Echec de l'authentification")
RETOUR
FIN

EmailChangeTimeOut(10)
Objsessionimap est un emailSessionIMAP
Objsessionimap.AdresseServeur = "outlook.office365.com"
Objsessionimap.Nom = fParmUtilisateur
Objsessionimap.MotDePasse = fParmMDP
Objsessionimap.Port = 993
Objsessionimap.Option = optionSSL
Objsessionimap.AuthToken = gToken

SauvegardeToken(fParmUtilisateur)
//---------------------------------------------------------------------------------------------

SI PAS EmailOuvreSession(Objsessionimap) ALORS
strRésultat = fParmUtilisateur+" : La session ne s'est pas ouverte : " + ErreurInfo() +" token "+gToken.DateExpiration
Trace(strRésultat)
RETOUR
SINON
Trace("connexion réussi")
FIN
tabEmailNonLus = EmailRécupèreTout(Objsessionimap, ertNonLus)


// Parcours du tableau des messages avec une boucle POUR TOUT
VariableRAZ(gstMonMessge)

POUR TOUT MonEmail DE tabEmailNonLus
//traitement
FIN

PROCÉDURE RestaureToken(fParmUtilisateur)
sNomFichierToken est une chaîne=fRepExe()+fSep+"token_"+fParmUtilisateur+".bin"
SI fFichierExiste(sNomFichierToken) ALORS
QUAND EXCEPTION DANS
Désérialise(gToken,fChargeBuffer(sNomFichierToken),psdBinaire)
FAIRE
//rien (le token sera invalide)
FIN
FIN

PROCÉDURE SauvegardeToken(fParmUtilisateur)
sNomFichierToken est une chaîne = fRepDonnées()+fSep+"token_"+fParmUtilisateur+".bin"
bufToken est un Buffer

Sérialise(gToken,bufToken,psdBinaire)

fSauveBuffer(sNomFichierToken,bufToken)
Posté le 21 juillet 2023 - 10:32
Bonjour,

Je tente désespérément d'accéder aux mails d'un compte Office 365.
J'utilise Oauth et IMAP pour cela. Je pense que depuis 3 jours j'ai tout essayé mais je continue à prendre le même message que vous !
Est-ce que vous avez pu trouver une solution parce que moi je sèche lamentablement.
J'ai lu tout et son contraire sur le forum pcsoft, sur internet.

Je mets mon code à tout hasard, mais normalement ça doit ressembler à ce que beaucoup on fait !

Merci pour toute aide qui serait précieuse pour moi.

MasessionIMAP est un emailSessionIMAP
MasessionIMAP..AdresseServeur ="outlook.office365.com"
MasessionIMAP..Nom ="monmail@monmail.com"
MasessionIMAP..MotDePasse ="monMDP"
MasessionIMAP..Port =993
MasessionIMAP..Option= optionSSL

oauthcnx est une OAuth2Paramètres
oauthcnx.ClientID = "d7f760a8-5f61-413d-945e-268690f9bd1d"
oauthcnx.ClientSecret = "oga8Q~d3AcW4oM4~E6o18iw7AYn36t3fhhOM-cr6"
oauthcnx.URLAuth = "https://login.microsoftonline.com/2c1c60d4-4674-46c5-805b-a01bc7e7ca3e/oauth2/v2.0/authorize"
oauthcnx.URLToken = "https://login.microsoftonline.com/2c1c60d4-4674-46c5-805b-a01bc7e7ca3e/oauth2/v2.0/token"
oauthcnx.Scope = "https://graph.microsoft.com/IMAP.AccessAsUser.All"
oauthcnx.ParamètresSupplémentaires = "force_reapprove=false"
oauthcnx.URLRedirection = "http://localhost:9874"
oauthcnx.TypeRéponse = oauth2TypeRéponseCode
MasessionIMAP.AuthToken = AuthIdentifie(oauthcnx)
Posté le 24 juillet 2023 - 15:26
Bonjour,

Alors il faut bien voir 2 choses, la première c'est que sur votre espace Azure, vous avez bien le compte auquel vous souhaitez accéder dans les utilisateurs et groupes.

Ensuite, chaque boîte mail a son propre Token, c'est à dire qu'il faut déconnecter le compte qui est connecté sur votre navigateur par défaut, lancer votre exe avec un premier "AuthIdentifie" ce qui va ouvrir votre navigateur sur une page de connexion (dans mon cas O365). Il faut vous connecter manuellement au compte en question, cela va vous retourner le token via programmation, il faudra l'enregistrer dans un fichier ini ou en base afin de le renouveler à chaque fois.

Et magie, vous aurez accès à la boite.
Posté le 25 juillet 2023 - 10:45
Bonjour,

Merci de votre réponse.
Je regarde le plus vite possible.

Cordialement.
Posté le 26 juillet 2023 - 10:07
Bonjour,

J'ai bien le compte utilisateur dans Azure.
Je me connecte avec le compte sur la page d'identification, le navigateur me renvoie le message "vous pouvez maintenant fermer votre navigateur"
Je visualise le token, retourné comme valide.

Et au moment du EmailOuvreSession je prends toujours le message :
Session IMAP accès refusé 02 NO AUTHENTICATE failed

Si vous aviez une idée supplémentaire..... Je suis preneur !
Parce que là je vais déprimer.

Merci beaucoup.
Posté le 26 juillet 2023 - 12:35
Contactez moi par mail via tarikyildiz.fr
Membre enregistré
1 message
Posté le 26 juillet 2023 - 14:54
Bonjour,

Merci de prendre le temps de vous intéresser à mon cas désespéré, mais il me semble que votre mail est incomplet ;-)

Thierry
Posté le 28 novembre 2023 - 10:52
Merci enormement :)

Mon probleme venez du fait que je n'utilise pas le meme compte sur mon navigateur et sur mon API.

Max