DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion des emails
  • Protocole SMTP
  • Session et nom d'utilisateur
  • SMTP authentifié
  • Délai de timeout
  • 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 d'envoi d'emails avec le protocole SMTP. Il sera uniquement possible d'envoyer des emails.
Remarques :
  • Le serveur SMTP à utiliser est en général le serveur SMTP du fournisseur d'accès à Internet (et pas celui du compte email). Par exemple si vous avez un accès Internet Orange et un compte email Free, il faut utiliser le serveur SMTP de Orange et pas celui de Free.
  • Pour ouvrir une session de réception et de lecture d'emails, utilisez la fonction EmailOuvreSessionPOP3.
  • Vous pouvez également utiliser une variable de type emailSessionSMTP.
Exemple
// Envoi d'un email par un serveur SMTP non sécurisé
EmailChangeTimeOut(10) // 10 secondes pour le time out
// Attention : il faut utiliser le serveur SMTP du fournisseur d'accès Internet 
soit sServeursSMTP = "smtp.orange.fr"
SI EmailOuvreSessionSMTP(sNomUser, sMotDePasse, sServeurSMTP) = Vrai ALORS
	// Procédure permettant d'initialiser la structure email
	Initialise_Email()
	// Envoie l'email
	SI EmailEnvoieMessage(sNomUser) = Faux ALORS
		Erreur()
	FIN
	EmailFermeSession(sNomUser)
SINON
	Erreur("Impossible d'établir la connexion", ErreurInfo(), ...
		"En cas de Time Out, assurez-vous des paramètres du " + ...
		"""Pare-Feu"" sur le port utilisé (25)")
FIN
WINDEVWindowsCode Utilisateur (MCU)
NomUser est une chaîne

NomUser = "monadresse@gmail.com"
// Envoi d'un email par le protocole SMTP sécurisé
EmailChangeTimeOut(10) // 10 secondes pour le time out
// Utilisation d'un serveur SMTP sécurisé avec authentification
// Nécessaire en général pour utiliser un SMTP 
// différent de celui du fournisseur d'accès Internet
SI EmailOuvreSessionSMTP(NomUser, "MotDePasse", ...
			"smtp.gmail.com", 587, Faux, emailProtocoleSMTPS) = Vrai ALORS
	// Procédure permettant d'initialiser la structure email
	Initialise_Email()
	// Envoie l'email
	SI EmailEnvoieMessage(NomUser) = Faux ALORS
		Erreur()
	FIN
	EmailFermeSession(NomUser)
SINON
	Erreur("Impossible d'établir la connexion", ErreurInfo(), ...
		"En cas de Time Out, assurez-vous des paramètres du "+ ...
		"""Pare-Feu"" sur le port utilisé (587)")
FIN
Syntaxe
<Résultat> = EmailOuvreSessionSMTP(<Nom utilisateur> [, <Mot de passe>] , <Adresse serveur SMTP> [, <Numéro port SMTP> [, <Mode Asynchrone> [, <Option>]]])
<Résultat> : Booléen
  • Vrai si la session a été ouverte,
  • Faux dans le cas contraire. En cas d'erreur, la variable ErreurDétectée est à Vrai.
    Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Nom utilisateur> : Chaîne de caractères
Identifie la session d'emails dans les fonctions de gestion des emails (utilisé par exemple par la fonction EmailEnvoieMessage pour envoyer des emails).
<Mot de passe> : Chaîne de caractères optionnelle
Mot de passe de l'utilisateur. Ce mot de passe est fourni par le fournisseur de services ou par l'administrateur réseau. Ce mot de passe permet d'ouvrir une session SMTP authentifiée.
<Adresse serveur SMTP> : Chaîne de caractères
Nom DNS ou adresse IP du serveur d'emails (protocole sortant). Cette adresse IP est fournie par le fournisseur de services ou par l'administrateur réseau.
Attention : Il est nécessaire d'utiliser le serveur SMTP du fournisseur de la connexion Internet. Ce serveur SMTP peut n'avoir aucun lien avec le serveur SMTP associé au compte email.
<Numéro port SMTP> : Entier optionnel
Identifie le port utilisé pour le protocole SMTP (25 par défaut).
<Mode Asynchrone> : Constante ou booléen optionnel
emailAsynchrone (ou Vrai)Les emails envoyés lors de la session ouverte avec la fonction EmailOuvreSessionSMTP doivent être transmis en mode asynchrone.
emailSynchrone (ou Faux)
(valeur par défaut)
Les emails envoyés lors de la session ouverte avec la fonction EmailOuvreSessionSMTP doivent être transmis en mode synchrone.

WINDEVUniversal Windows 10 AppJava Ce paramètre doit correspondre à emailSynchrone ou Faux.
<Option> : Constante optionnelle de type Entier
Options de la session SMTP. Les valeurs possibles sont :
emailOptionDéfaut
(valeur par défaut)
Ouverture de session SMTP.
emailProtocoleSMTPSOuverture de session SMTP sécurisée par le protocole TLS.
A partir de la version 28 Update 4, le nom de cette constante a été modifié pour améliorer la lisibilité du code. Dans les versions précédentes, cette constante avait pour nom emailOptionSécuriséTLS.
Universal Windows 10 App Cette constante n'est pas disponible.
optionTLSOuverture de session SMTP sécurisée par le protocole SSL. Ce type de session est utilisée par exemple par les serveurs Orange, Free, Gmail.
A partir de la version 28 Update 4, le nom de cette constante a été modifié pour améliorer la lisibilité du code. Dans les versions précédentes, cette constante avait pour nom optionSSL.
Universal Windows 10 App Cette constante n'est pas disponible.

Java Ce paramètre n'est pas disponible.
Remarques

Protocole SMTP

  • Les différents paramètres passés à la fonction EmailOuvreSessionSMTP sont fournis par le fournisseur de services ou par l'administrateur réseau. Avant de pouvoir gérer les emails, il est nécessaire d'ouvrir une connexion Internet. Plusieurs cas peuvent se présenter :
    • L'utilisateur utilise un modem pour se connecter à Internet : la fonction NetOuvreAccèsDistant permet d'ouvrir la connexion à Internet.
    • L'utilisateur utilise une connexion à Internet directe (câble ou ADSL) : aucune opération spécifique ne doit être faite.
  • Le protocole SMTP permet uniquement d'envoyer des messages emails. Si vous tentez de lire des messages emails sans ouvrir une session POP3 (fonction EmailOuvreSessionPOP3), une erreur du WLangage sera générée. Pour ouvrir à la fois une session POP3 et une session SMTP, utilisez la fonction EmailOuvreSession.

Session et nom d'utilisateur

Après l'ouverture d'une session SMTP, il est possible d'ouvrir une session POP3 (fonction EmailOuvreSessionPOP3) en utilisant le même nom d'utilisateur.

SMTP authentifié

Le paramètre <Mot de passe> permet d'ouvrir une session SMTP authentifiée. Le mécanisme d'authentification supporté est de type SMTP Login et Plain.
Si le serveur reconnaît un de ces deux mécanismes d'authentification et si l'authentification échoue, alors la connexion échoue également.
Si le serveur ne reconnaît pas un de ces deux mécanismes d'authentification, si l'authentification échoue, la fonction EmailOuvreSessionSMTP tente une connexion sans authentification.
Remarque : l'authentification SMTP ne peut pas être effectuée avec la fonction EmailOuvreSession. Pour ouvrir à la fois une session POP3 et une session SMTP authentifiée il est nécessaire d'utiliser les deux fonctions EmailOuvreSessionPOP3 et EmailOuvreSessionSMTP.

Délai de timeout

Il est possible de paramétrer le délai de timeout avec la fonction EmailChangeTimeOut.
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 EmailOuvreSessionSMTP :
// 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.
Classification Métier / UI : Code métier
Composante : wd300com.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 17/05/2024

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