IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

[WD2024]Connexion token : code fonctionnel mais 2/4 adresses mails hs


Sujet :

WinDev

  1. #1
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    484
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 484
    Points : 828
    Points
    828
    Par défaut [WD2024]Connexion token : code fonctionnel mais 2/4 adresses mails hs
    Bonjour à tous
    Une des applications de mon entreprise traite les mails reçus, et utilise spécifiquement les tokens pour l'identification.

    Elle se connecte à 4 adresses mails différentes.

    Mais depuis debut d'après midi, cela ne fonctionne plus pour 2 des adresses mails.
    Lorsque je souhaite regénérer le token j'ai le message suivant : "Session IMAP, accès refusé. Le dossier 'INBOX' n'existe pas sur le serveur"

    Le soucis est que ces adresses mails ont bien un dossier Inbox (j'ai passé l'une d'elle en anglais pour qu'effectivement ce soit INBOX mais cela n'a pas résolu le problème).

    Nous avons testé avec une version datant de plusieurs semaines, le soucis se pose toujours.

    Est ce que quelqu'un a déjà rencontré un problème similaire ?

    Voici le code, même si je doute que ça soit fort utile

    Merci d'avance !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
     
    sAdresseServeur,sAdresseMail,sPassword,sPort sont des chaînes
    sClientID,sTenantID,sClientSecret,sModeSSL,sUrlURI sont des chaînes
    bAuth est un booléen
    bufToken				est un Buffer
    sFichierPersistanceAuth	est une chaîne
    TokenSession			is AuthToken
     
    SELON SansEspace(INILit(pNomClient,"Authentification","Erreur",gsNomFicIni))
    	CAS ~~"oAuth"
    		bAuth = Vrai
    	AUTRE CAS
    		bAuth = Faux
    FIN
     
    sAdresseServeur = SansEspace(INILit(pNomClient,"AdresseServeur","Erreur",gsNomFicIni))
    SI sAdresseServeur = "Erreur" OU sAdresseServeur = "" ALORS
    	ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur AdresseServeur dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    	GOTO Erreur_Label	
    FIN
     
    sAdresseMail = SansEspace(INILit(pNomClient,"NomBoiteMail","Erreur",gsNomFicIni))
    SI sAdresseMail = "Erreur" OU sAdresseMail = "" ALORS
    	ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur NomBoiteMail dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    	GOTO Erreur_Label	
    FIN
    sPort = SansEspace(INILit(pNomClient,"PortMail","Erreur",gsNomFicIni))
    SI sPort = "Erreur" OU sPort = "" ALORS
    	ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur PortMail dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    	GOTO Erreur_Label	
    FIN
     
    sModeSSL = SansEspace(INILit(pNomClient,"TypeSSL","Erreur",gsNomFicIni))
    SI sModeSSL = "Erreur" OU sModeSSL = "" ALORS
    	ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur TypeSSL dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    	GOTO Erreur_Label	
    FIN
     
    SI bAuth ALORS
    	sClientID = SansEspace(INILit(pNomClient,"ClientID","Erreur",gsNomFicIni))
    	SI sClientID = "Erreur" OU sClientID = "" ALORS
    		ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur ClientID dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    		GOTO Erreur_Label
    	FIN
    	sClientSecret = SansEspace(INILit(pNomClient,"ClientSecret","Erreur",gsNomFicIni))
    	SI sClientSecret = "Erreur" OU sClientSecret = "" ALORS
    		ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur ClientSecret dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    		GOTO Erreur_Label
    	FIN
    	sTenantID = SansEspace(INILit(pNomClient,"TenantID","Erreur",gsNomFicIni))
    	SI sTenantID = "Erreur" OU sTenantID = "" ALORS
    		ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur TenantID dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    		GOTO Erreur_Label
    	FIN
    	sUrlURI = SansEspace(INILit(pNomClient,"UrlURI","Erreur",gsNomFicIni))
    	SI sUrlURI = "Erreur" OU sTenantID = "" ALORS
    		ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur UrlURI dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    		GOTO Erreur_Label
    	FIN
    SINON
    	sPassword = SansEspace(INILit(pNomClient,"PasswordMail","Erreur",gsNomFicIni))
    	SI sPassword = "Erreur" OU sPassword = "" ALORS
    		ListeAjoutePlus(cTypeErreur,"Erreur impossible de lire la valeur PasswordMail dans "+gsNomFicIni+" Section ["+pNomClient+"]")
    		GOTO Erreur_Label
    	FIN
    FIN
     
    SI bAuth ALORS
    	sFichierPersistanceAuth	= gsRepExe + "AuthSession"+sAdresseMail+".bin"
    	pMaSessionIMAP..AdresseServeur	= sAdresseServeur
    	pMaSessionIMAP..Nom				= sAdresseMail
    	pMaSessionIMAP..Port			= sPort
     
    	SI sModeSSL = "SSL" ALORS
    		pMaSessionIMAP..Option			= optionSSL
    	SINON
    		pMaSessionIMAP..Option			= emailOptionSécuriséTLS
    	FIN
     
    	m_Svc					est un OAuth2Paramètres
    	m_Svc.ClientID			= sClientID
    	m_Svc.ClientSecret		= sClientSecret
    	m_Svc.URLAuth			= "https://login.microsoftonline.com/"+sTenantID+"/oauth2/v2.0/authorize"
    	m_Svc.URLToken			= "https://login.microsoftonline.com/"+sTenantID+"/oauth2/v2.0/token"
     
    	m_Svc.Scope				= "openid profile offline_access https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/SMTP.Send https://outlook.office.com/email"
     
    	m_Svc.URLRedirection	= sUrlURI  //"http://localhost:3017"
     
    	SI pForceToken ALORS
    		m_Svc.ParamètresSupplémentaires = "prompt=select_account"
     
    		TokenSession = AuthIdentifie(m_Svc)    
    		SI TokenSession.Valide ALORS
    			QUAND EXCEPTION DANS
    				// Charge la session
    				Sérialise(TokenSession, bufToken, psdBinaire)
    				SI PAS fSauveBuffer(sFichierPersistanceAuth, bufToken)  ALORS
    					ListeAjoutePlus(cTypeErreur,ErreurInfo())
    					GOTO Erreur_Label					
    				FIN
    			FAIRE
    				// Erreur de relecture du token
    				ListeAjoutePlus(cTypeErreur,"Impossible de sérialiser le nouveau Token")
    				GOTO Erreur_Label
    			FIN
     
    			// Sauvegarde du token
     
    		FIN
    	SINON
    		SI PAS fFichierExiste(sFichierPersistanceAuth) ALORS
    			ListeAjoutePlus(cTypeErreur,"Le fichier Token "+sFichierPersistanceAuth+" n'existe pas")
    			GOTO Erreur_Label	
    		FIN
     
    		QUAND EXCEPTION DANS
    			// Charge la session
    			bufToken = fChargeBuffer(sFichierPersistanceAuth)
    			Désérialise(TokenSession, bufToken, psdBinaire)  
     
     
    			SI ((TokenSession.DateExpiration-1min < DateHeureSys()) _ET_
    				TokenSession.Actualisation <> "") OU TokenSession.Valide = Faux ALORS
    				TokenSession = AuthRenouvelleToken(TokenSession)
    				SI TokenSession.Valide ALORS
    					Sérialise(TokenSession, bufToken, psdBinaire)
    					fSauveBuffer(sFichierPersistanceAuth, bufToken)
    				SINON
    					ListeAjoutePlus(cTypeOk,"Echec du renouvellement de la session")
    					ListeAjoutePlus(cTypeWarning,"Vous devez reconnecter la boite mail : "+sAdresseMail)
    					m_Svc.ParamètresSupplémentaires	= "prompt=select_account"
     
    					TokenSession					= AuthIdentifie(m_Svc)    
    					SI TokenSession.Valide ALORS
    						Sérialise(TokenSession, bufToken, psdBinaire)
    						SI PAS fSauveBuffer(sFichierPersistanceAuth, bufToken)  ALORS
    							ListeAjoutePlus(cTypeErreur,ErreurInfo())
    							GOTO Erreur_Label					
    						FIN
    					SINON
    						ListeAjoutePlus(cTypeErreur,"Impossible de sérialiser le nouveau Token")
    						GOTO Erreur_Label
    					FIN
    				FIN
    			FIN
    		FAIRE
    			// Erreur de relecture du token
    			ListeAjoutePlus(cTypeErreur,"Le fichier Token "+sFichierPersistanceAuth+" est invalide")
    			GOTO Erreur_Label
    		FIN	
    	FIN
     
    	SI PAS TokenSession.Valide ALORS
    		ListeAjoutePlus(cTypeErreur,"Le fichier Token "+sFichierPersistanceAuth+" n'est plus valide")
    		GOTO Erreur_Label
    	FIN
    	pMaSessionIMAP.AuthToken		= TokenSession
     
    SINON
    //	EmailParamètre(emailParamètreMode, 0)
    	pMaSessionIMAP..AdresseServeur	= sAdresseServeur
    	pMaSessionIMAP..Nom				= sAdresseMail
    	pMaSessionIMAP..MotDePasse		= sPassword
    	pMaSessionIMAP..Port			= sPort
    	SI sModeSSL = "SSL"  ALORS
    		pMaSessionIMAP..Option			= optionSSL
    	SINON
    		pMaSessionIMAP..Option			= emailOptionSécuriséTLS
    	FIN
    FIN
     
    //Timeout 10s
    EmailChangeTimeOut(100)
     
    SI PAS pMaSessionIMAP.OuvreSession() ALORS
    	ListeAjoutePlus(cTypeErreur,ErreurInfo())
    	GOTO Erreur_Label
    FIN
     
    SI pForceToken ALORS
    	pMaSessionIMAP.FermeSession()
    	Info("Token valide")
    FIN
     
    RENVOYER Vrai
     
    Erreur_Label:
    SI pForceToken ALORS
    	pMaSessionIMAP.FermeSession()
    	Erreur("Token invalide")
    FIN
     
    RENVOYER Faux
     
    CAS EXCEPTION:
    	ListeAjoutePlus(cTypeErreur,ExceptionInfo(errComplet))
    	GOTO Erreur_Label

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 425
    Points : 9 648
    Points
    9 648
    Par défaut
    Bonjour,

    Questions bêtes :
    - le (fournisseur du) serveur de méls est le même pour toutes les boites ?EDIT : c'est Microsoft semble t'il
    - ledit fournisseur est il en train de changer sa politique de sécurité ?EDIT : possible, et c'est du genre à faire comme gogol : on change mais on ne fait pas tout en même temps et on ne prévient pas...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    484
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 484
    Points : 828
    Points
    828
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Bonjour,

    Questions bêtes :
    - le (fournisseur du) serveur de méls est le même pour toutes les boites ?EDIT : c'est Microsoft semble t'il
    - ledit fournisseur est il en train de changer sa politique de sécurité ?EDIT : possible, et c'est du genre à faire comme gogol : on change mais on ne fait pas tout en même temps et on ne prévient pas...
    Bonjour et merci de la réponse

    C'est bien microsoft, des boites office 365

    Je ne suis pas au courant du changement de politique de sécurité, je vais regarder de ce coté

    Bonne journée

  4. #4
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2002
    Messages
    484
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 484
    Points : 828
    Points
    828
    Par défaut
    J'ai eu la réponse, un des services avait modifié la licence de la boite mail sans savoir que c'était impactant pour ce logiciel là.
    A priori le soucis devrait donc être réglé d'ici une heure maxi, le temps que cela s'actualise.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2022, 02h24
  2. [STM32] Code fonctionnel sur carte d'essai mais pas sur PCB
    Par tengalice49 dans le forum Embarqué
    Réponses: 4
    Dernier message: 20/07/2018, 18h27
  3. Code fonctionnel sous eclipse mais non fonctionnel en jar
    Par hannibal.76 dans le forum Eclipse Java
    Réponses: 22
    Dernier message: 17/11/2011, 13h22
  4. [FLASH 8] 2 codes semblables mais resultats differents !?
    Par kubito dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 14/04/2006, 17h17
  5. [CR 9] [ASPX][C#]connexion via code
    Par nannous dans le forum Connectivité
    Réponses: 3
    Dernier message: 20/08/2003, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo