|
[WD22] Erreur aléatoire lors d'envoi courriel avec adresse Microsoft (Outlook, office365, hotmail, etc.) |
Started by Maxime, Oct., 14 2021 9:25 PM - 6 replies |
| |
| | | |
|
| |
Registered member 19 messages |
|
Posted on October, 14 2021 - 9:25 PM |
Bonjour à vous tous. Plusieurs personnes nous ont contacté concernant des erreurs d'envoi courriel lorsqu'ils utilisent une adresse provenant de Microsoft. (hotmail, outlook, Exchange/Office365 , etc.) avec nos logiciels.
Fait étrange, cette situation ne se présente qu'avec ces mêmes adresses de Microsoft. Aucun problème du côté GMail ou autres fournisseurs tierces tels que GoDaddy pour n'en nommer qu'un seul.
J'ai donc conçu une mini application toute simple afin de vérifier si nous arrivions au même résultat que nos clients. (qui eux passe par un composant .Net pour l'envoi courriel plutôt que les fonctions natives de Windev)
Je vous partage le code (rien d'impressionnant ici)
EmailChangeTimeOut(20)
MaSession est un emailSessionSMTP MaSession.AdresseServeur = SAI_SMTP MaSession.Nom = SAI_SendFrom MaSession.Port = SAI_Port MaSession.MotDePasse = SAI_Password SI SEL_IfSecured = 1 ALORS MaSession.Option = optionSSL FIN SI SEL_IfSecured = 2 ALORS MaSession.Option = emailOptionSécuriséTLS FIN SI SEL_IfSecured = 3 ALORS MaSession.Option = emailOptionDéfaut FIN SI EmailOuvreSession(MaSession) ALORS SINON Trace(ErreurInfo(errComplet)) Erreur(ErreurInfo(errComplet)) RETOUR FIN
MonMessage est un Email MonMessage.Expediteur = SAI_SendFrom Ajoute(MonMessage.Destinataire, SAI_SendTo) MonMessage.Sujet = SAI_Subject MonMessage.Message = SAI_Content
SI EmailEnvoieMessage(MaSession, MonMessage) ALORS ToastAffiche("Courriel envoyé.",toastCourt,cvMilieu,chCentre,VertFoncé) SINON Trace("Erreur" + RC + ErreurInfo(errComplet)) Erreur("Error." + RC + "Le courriel n'a pu être envoyé pour la/les raison(s) suivante(s): " + RC + ErreurInfo(errComplet)) FIN EmailFermeSession(MaSession)
Lors de l'ouverture de session SMTP, il arrive de recevoir l'erreur suivante :
Appel WL : Traitement de 'Clic sur BTN_Send' (FEN_Main.BTN_Send), ligne 18, thread 0 Fonction 'EmailOuvreSession', syntaxe 10
Que s'est-il passé ? Le mécanisme de sécurité du WLangage a détecté une erreur système.
Code erreur : 101000 Niveau : erreur non fatale
Code d'erreur système : 240
Dump de l'erreur du module 'wd220com.dll' (22.0.81.3). Identifiant des informations détaillées (.err) : 101000 Informations de débogage : cbData ClientHandshakeLoop Fonction (10,21) Informations supplémentaires : EIT_PILEWL : Clic sur BTN_Send (FEN_Main.BTN_Send), ligne 18 EIT_DATEHEURE : 14/10/2021 15:18:48 EIT_TYPE_WDFILE : <2> EIT_IDCODE : <18>
J'ignore cependant s'il s'agit ici d'un problème relié à Windev 22 ou si c'est une réponse à la connexion SMTP qui n'a pu être simplement effectué.
L'équivalent de ces erreurs sur notre composante .NET est :
System.Net.Mail.SMTPException: Échec d'envoi du courrier. --> System.IO.IOException: Échec de l'authentification, car le site distant a fermé le flux de transport.
Est-ce que certains d'entre vous avez ce même genre de situation avec les adresses provenant des services de Microsoft?
Merci! |
| |
| |
| | | |
|
| | |
| |
Registered member 74 messages Popularité : +1 (1 vote) |
|
Posted on October, 15 2021 - 1:18 PM |
Bonjour Maxime,
J'ai un peu le même problème que vous. (voir message Daniel19 ci-dessous) Après recherches de mon côté il s'avèrerait que cela provient des procédures anti-spam de l'hébergeur... Les messages arrivent bien chez lui et sont détruits car considérés comme spam. J'utilise en gros le même code que vous. Bonne fin de journée à vous. |
| |
| |
| | | |
|
| | |
| |
Registered member 19 messages |
|
Posted on October, 15 2021 - 8:14 PM |
Bonjour Daniel,
Dans notre cas, il ne s'agit pas des procédures anti-spam malheureusement car en cas de spam, l'erreur diffère.
J'ai ajouté la ligne de code suivante pour changer le mode d'envoi des courriels :
EmailParamètre(emailParamètreMode,1)
Avec cet ajout, mon mini application ne fait génère plus aucune erreur.
Ceci dit, je tente de comprendre ce qui empêche de façon totalement aléatoire l'authentification au serveur SMTP lors de l'ouverture de session depuis le composant en .NET que nous avions ajouté à notre application à l'époque.
Mais je suspecte fortement Microsoft de migrer leurs serveurs SMTP sous le protocole TLS v1.2 en différentes vagues si je me fis à l'article suivant sorti le 5 octobre dernier :
https://docs.microsoft.com/en-us/microsoft-365/compliance/prepare-tls-1.2-in-office-365…
Donc lors de l'envoi courriel, il semble que de temps à autres, l'adresse SMTP nous redirige vers des serveurs encore compatibles sous TLS 1.0 / 1.1 et que parfois, ça redirige vers un serveur migré vers TLS 1.2 seulement, ce qui explique les erreurs qui varient d'une tentative à une autre. |
| |
| |
| | | |
|
| | |
| |
Posted on October, 25 2021 - 2:30 PM |
Merci pour le partage de cette réponse Maxime !
Pour info en 24 il y a le meme soucis. Je n'ai pas eu le temps de tester en 26. Toujours est il qu'à première vue la commande emailParamètre fonctionne. Et bien je suis bon pour un update chez tous mes clients bossent sous 365.... |
| |
| |
| | | |
|
| | |
| |
Registered member 19 messages |
|
Posted on October, 26 2021 - 5:01 PM |
Bonjour Tom A,
Avez-vous essayer de changer le paramètre en utilisant "EmailParamètre(emailParamètreMode,1)" ??
Je sais que l'aide de Windev stipule qu'il n'est pas nécessaire de le faire pour les versions supérieures à la version 22 mais j'ai remarqué que sans déclarer cette ligne avant l'ouverture de la session SMTP, l'envoi est tenté en TLS 1.0.
Voici le résultat qui prouve l'envoi en TLS 1.0 quand nous tentons l'envoi sans "EmailParamètre(emailParamètreMode,1)"
Received: from MSI.xxxx.xxxx (xx.xx.xx.xx) by YQBPR0101CA0257.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:68::6) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) id 15.20.4628.16 via Frontend Transport; Tue, 26 Oct 2021 14:55:24 +0000
comme vous pouvez constater, version = TLS1_0.
Voici le résultat quand nous tentons l'envoi AVEC "EmailParamètre(emailParmaètreMode,1)"
Received: from MSI.xxxx.xxxx (xx.xx.xx.xx) by YQBPR01CA0044.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:2::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13 via Frontend Transport; Tue, 26 Oct 2021 14:54:05 +0000
Dans celle-ci , version = TLS1_2 .
Depuis ce changement de mon côté, plus aucun problème.
En espérant que ceci vous aura aider.
Bonne chance! |
| |
| |
| | | |
|
| | |
| |
Posted on October, 28 2021 - 3:42 PM |
Bonjour Maxime, On vient de me remonter le même problème et effectivement EmailParamètre(emailParmaètreMode,1) fait le job. Merci pour ces informations ton post m'a fait gagner beaucoup de temps. Cordialement, |
| |
| |
| | | |
|
| | |
| |
Posted on November, 22 2021 - 5:17 PM |
Bonjour à tous, J'ai eu les mêmes problèmes d'envoi de mails avec Office365 et Windev. Le support MS m'avait fait ajouter un connecteur dans Office365 mais ça ne corrigeait pas le problème. Effectivement le "EmailParamètre(emailParmaètreMode,1)" corrige le problème d'envoi de mails. Merci à vous. Patrick |
| |
| |
| | | |
|
| | | | |
| | |
|