La sécurisation des serveurs SMTP passe par l'utilisation d'un certificat. Ce certificat est mis en place par le serveur SMTP. Selon l'algorithme utilisé et l'émetteur du certificat, des adaptations doivent être réalisées dans votre code.

Par défaut WINDEV utilise les API Windows pour vérifier le certificat et surtout la chaine de certification. Certains serveurs ont mis en place un certificat de type Elliptic-Curve qui ne sont pas gérés par les API Windows (Wininet). Depuis la version 22 de WINDEV ou WEBDEV, vous pouvez utiliser un nouveau mode de vérification de cette chaine de certificat avec la commande EMailParamétre.

 

En changeant le mode de vérification, WINDEV réalise lui-même cette recherche et les nouveaux certificats non gérés par Microsoft sont maintenant gérés.

 

Toutefois, si le certificat émis par votre serveur SMTP est un certificat autosigné, la chaine de certification ne sera pas valide. Le certificat n'étant pas émis par une autorité de confiance reconnue par Microsoft. Quel que soit l'algorithme utilisé la vérification va échouer.

 

Pour que la session puisse être ouverte, il est nécessaire d'ajouter cette autorité. Vous devez pour cela récupérer le fichier contenant ce certificat et utiliser la commande CertificatDeConfianceAjoute("FichierCertificat").

 

Voici donc le code à utiliser avant une connexion à un serveur SMTP ayant fourni un certificat auto-signé :

 

 

EmailParamètre(emailParamètreMode,1)
SI PAS CertificatDeConfianceAjoute("FichierCertificat") ALORS
Erreur("Impossible d'ajouter l'authorité de confiance.",ErreurInfo(errComplet))
SINON
// Connexion SMTP
FIN

 

 

< Retour

2 commentaires

Etienne
24/06/2019 - 15:18 - Répondre
où avez-vous trouvé la fonction "CertificatDeConfianceAjoute" ? Je suis en WinDev 23 et elle n'existe pas. Merci

LOIC HAMEL
24/06/2019 - 15:27 - Répondre
Cette fonction est une nouveauté de la version 24 de WINDEV. Elle n'existe malheureusement pas dans la version 23. Je vous conseille de recompiler votre projet avec la version 24.

Publier un commentaire : 
Votre adresse email ne sera pas publiée