DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion des emails
  • Timeout
  • Connexion avec double authentification
  • Gmail : Que faire si une connexion à Gmail (SMTP, IMAP, POP3) échoue avec une erreur de certificat ?
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
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 ou Chaîne secrète
Mot de passe de l'utilisateur. Ce mot de passe est fourni par le fournisseur de services ou par l'administrateur réseau.
Nouveauté 2025
Utilisation de chaînes secrètes : Si vous utilisez le coffre-fort de chaînes secrètes, le type de la chaîne secrète utilisable pour ce paramètre doit être "Chaîne Ansi ou Unicode".
Pour plus de détails sur les chaînes secrètes et l'utilisation du coffre-fort, consultez Coffre-fort de chaînes secrètes.
AndroidWidget Android Les chaînes secrètes ne sont pas disponibles pour ce paramètre en Android/Android Widget.
<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.
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 une 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

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)
Remarques :
  • À 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.
  • La gestion des erreurs de certificat sur une session SMTP peut être réalisée avec la propriété IgnoreErreur d'une variable de type emailSessionSMTP.
Composante : wd300com.dll
Version minimum requise
  • Version 15
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 13/11/2024

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