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
|