DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion des emails
  • Timeout
  • Connexion avec double authentification
  • Fonctionnalité d'application requise
  • Gmail : Que faire si une connexion à Gmail (SMTP, IMAP, POP3) échoue avec une erreur de certificat ?
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Ouvre une session de réception et de lecture d'emails avec le protocole IMAP. Il sera uniquement possible de lire des emails. Il est possible d'ouvrir une session IMAP sécurisée via SSL.
Remarque : Pour ouvrir une session d'envoi d'emails, utilisez la fonction EmailOuvreSessionSMTP.
Exemple
// Lecture d'un email par le protocole IMAP
SI EmailOuvreSessionIMAP(SAI_USER, SAI_PASSWORD, "imap.mondomaine.fr") = Vrai ALORS
TraiteEmailRecus()
SINON
Erreur("Impossible d'établir la connexion")
FIN
Syntaxe
<Résultat> = EmailOuvreSessionIMAP(<Nom d'utilisateur> , <Mot de passe> , <Adresse du serveur> [, <Port> [, <Option>]])
<Résultat> : Booléen
  • Vrai si la session a été ouverte,
  • Faux dans le cas contraire. En cas d'erreur, le détail de l'erreur peut être obtenu grâce à la fonction ErreurInfo.
<Nom d'utilisateur> : Chaîne de caractères
Nom de l'utilisateur sur le serveur. Ce nom est fourni par le fournisseur de services ou par l'administrateur réseau. Ce nom permettra d'identifier la session d'emails dans les différentes fonctions de gestion des emails.
<Mot de passe> : Chaîne de caractères
Mot de passe de l'utilisateur. Ce mot de passe est fourni par le fournisseur de services ou par l'administrateur réseau.
<Adresse du serveur> : Chaîne de caractères
Adresse du serveur d'emails (protocole entrant). Cette adresse est fournie par le fournisseur de services ou par l'administrateur réseau. Cette adresse peut être donnée sous la forme :
  • Adresse IP au format XXX.XXX.XXX.XXX ( par exemple, 192.168.1.1).
  • Adresse IP contenant le nom du serveur (par exemple, imap.mondomaine.fr). Cette syntaxe est conseillée.
  • Adresse IP obtenue par la fonction NetAdresseIP.
Remarque : L'adresse doit être une adresse IPv4.
<Port> : Entier optionnel
Identifie le port utilisé pour le protocole IMAP (143 par défaut).
<Option> : Constante optionnelle de type Entier
Permet d'indiquer si une connexion SSL est nécessaire :
emailOptionDéfaut
(Valeur par défaut)
Connexion non sécurisée.
optionTLSConnexion TLS nécessaire (cas d'un serveur IMAP sécurisé).
Remarque : Le port généralement utilisé pour un serveur IMAP sécurisé est 993 (et non 143, valeur du port par défaut).
Avant la version 28 Update 4, cette constante avait pour nom optionSSL.
Universal Windows 10 App Cette constante n'est pas disponible.
Remarques

Timeout

Il est possible de paramétrer le délai de timeout avec la fonction EmailChangeTimeOut.

Connexion avec double authentification

De plus en plus de fournisseurs proposent l'utilisation de comptes email sécurisés (SMTP/IMAP) avec une double authentification.
Le principe est le suivant :
  • Connexion de type OAuth vers le fournisseur de la boîte mail : cette connexion fournit un token.
  • Utilisation du token qui devra être utilisé lors de la connexion aux boîtes IMAP ou SMTP.
Voici un exemple de code pouvant être utilisé :
// 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 = optionTLS
gMaSessionIMAP.Port = "993"
 
// Paramètres de connexion OAuth
OAuthCnxGoogle.ClientID = "ID de l'application"
OAuthCnxGoogle.ClientSecret = "ID secret de l’application"
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éussi, il faut se connecter à la boîte email.
SI gMaSessionIMAP.AuthToken <> Null ALORS
// utilisation de la syntaxe préfixée de la fonction EmailOuvreSession
SI gMaSessionIMAP.OuvreSession() ALORS
// Session ouverte
SINON
// Erreur d'ouverture de la session.
FIN
SINON
// Erreur d'authentification.
FIN
Universal Windows 10 App

Fonctionnalité d'application requise

L'utilisation de cette fonction entraîne la déclaration d'une fonctionnalité d'application dans l'assistant de génération de l'application.
Fonctionnalité requise : Réseaux domestiques et professionnels
Cette fonctionnalité permet aux applications d'utiliser des accès entrants et sortants vers des réseaux domestiques et professionnels.

Gmail : Que faire si une connexion à Gmail (SMTP, IMAP, POP3) échoue avec une erreur de certificat ?

Depuis fin août 2017, Google a déployé un nouveau certificat : Google Internet Authority G3. Malheureusement, l'API Windows utilisée pour la vérification des certificats ne valide pas ce certificat.
L'ouverture d'une session POP3, IMAP ou SMTP peut donc échouer avec le retour "La chaîne de certificats a été fournie par une autorité qui n'est pas approuvée".
Afin de permettre la validation du certificat, il est possible de modifier le mode de gestion des emails. La fonction WLangage EmailParamètre permet de changer ce mode et ainsi de ne plus utiliser l'API Windows qui bloque ce certificat. Voici le code à ajouter avant l'ouverture de la session par la fonction EmailOuvreSessionIMAP :
// Activation de l'implémentation multiplateforme
EmailParamètre(emailParamètreMode, 1)
Remarque : À partir de la version 23 Update 1, l'appel à la fonction EmailParamètre n'est plus nécessaire : le WLangage utilise automatiquement le mode de gestion des emails adapté à la session.
Composante : wd290com.dll
Version minimum requise
  • Version 15
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 28/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale