Page 1 sur 1
[R] Plantage $objEmail.Send
Posté : mar. 18 nov. 2025 16:34
par scorp84
Rebonjour à tous,
2ème question du jour
J'utilise la fonction _INetSmtpMailCom ''classique" et je rencontre le problème suivant : Si le send ($objEmail.Send) plante, quelle que soit la raison (adresse email inexistante, problème serveur, ...), l'exe Autoit plante.
The requested action with this object has failed.:
$objEmail.Send
$objEmail^ ERROR
Comment pourrais-je récupérer l'erreur de la fonction pour informer l'utilisateur que le mail n'est pas parti ?
Merci d'avance pour votre aide.
Amicalement.
BM
Re: [..] Plantage $objEmail.Send
Posté : mar. 18 nov. 2025 17:07
par Nine
Regarde dans le fichier d'aide sous la rubrique COM Error Handling.
Code : Tout sélectionner
Local $oMyError = ObjEvent("AutoIt.Error", "ErrFunc")
$objEmail.Send(...)
If @error then
...
EndIf
Func ErrFunc($oError)
MsgBox($MB_OK, "We intercepted a COM Error !", _
"Number: 0x" & Hex($oError.number, 8) & @CRLF & _
"Description: " & $oError.windescription & _
"At line: " & $oError.scriptline)
EndFunc ;==>ErrFunc
Tu peux ne rien faire dans la fonction ErrFunc. En cas d'erreur @error sera initialisé.
Re: [..] Plantage $objEmail.Send
Posté : mar. 18 nov. 2025 17:17
par scorp84
Bonjour Nine,
Merci pour ta réponse.
Mais si c'est au sein de la fonction que cela plante, l'interprétation du code n'ira pas jusqu'au @error en sortie de fonction ou je me trompe ?
Amicalement.
BM
Re: [..] Plantage $objEmail.Send
Posté : mar. 18 nov. 2025 18:18
par Nine
Tu n'as qu'à faire un test. Mais j'ai très souvent travaillé avec des objets COM, et je n'ai jamais eu de cas où ça ne fonctionnait pas...
Re: [..] Plantage $objEmail.Send
Posté : mar. 18 nov. 2025 18:22
par scorp84
OK,
Je teste ça.
Merci encore pour ton aide.
Amicalement.
BM
Re: [R] Plantage $objEmail.Send
Posté : jeu. 20 nov. 2025 08:26
par scorp84
Bonjour Nine,
Ça marche nickel.
Merci infiniment.
Amicalement.
BM
Re: [R] Plantage $objEmail.Send
Posté : jeu. 20 nov. 2025 21:27
par louiseravot
Salut,
Le crash vient de l’erreur COM générée par .Send. Pour éviter que l’exe plante, tu dois intercepter l’erreur avec un handler COM
Re: [R] Plantage $objEmail.Send
Posté : ven. 21 nov. 2025 21:25
par scorp84
Bonjour Louiseravot,
J'ai compris d'où venait mon erreur.
La ligne Local $oMyError = ObjEvent("AutoIt.Error", "ErrFunc") n'était pas avant l'appel de la fonction d'envoi de mail.
Merci pour ton aide.
Amicalement.
BM