Gildeplomb
Messages postés102Date d'inscriptionsamedi 29 décembre 2012StatutMembreDernière intervention24 mars 2021
-
Modifié le 2 févr. 2020 à 14:05
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023
-
1 févr. 2020 à 17:46
Bonjour à tous,
J'ai un problème avec une fonction ( voir titre )
Public Function Envoi_Mail(Sujet As String, Mes As String) As Boolean 'Envoyer infos par mail
Dim client As New System.Net.Mail.SmtpClient
Using messageMail As New System.Net.Mail.MailMessage
client.Credentials = New System.Net.NetworkCredential("Adresse@hotmail.com", Pass )
client.Port = 587 'définition du port
client.Host = "smtp.live.com" 'définition du serveur smtp
client.EnableSsl = True
messageMail.From = New System.Net.Mail.MailAddress(AdresseMail)
messageMail.To.Add("xxxxx@xxx.fr")
messageMail.Subject = Sujet
messageMail.Body = Mes
Try
client.Send(messageMail) 'envoi du mail
Return True
Catch ex As Exception
Return False
Finally
messageMail.Dispose()
End Try
End Using
End Function
Cela marche quand je suis sous l'IDE mais pas une fois installé sur mon ordinateur : j'ai un message d'erreur ' L'adresse ne peut pas être une chaine vide "
Je ne comprends pas pourquoi
si quelqu'un peut m'aider ,Merci
Ensuite, tu as laissé une adresse mail en clair dans le code. J’ai fait un signalement pour qu’un modérateur l’anonymise.
Enfin, dans ton try catch, ta close Finaly ne sera pas traitée car tu fais un return à la fin du try et dans le catch.
Je ne sais pas te dire si ça peut être la cause de ton problème.
Tu pourrais modifier ainsi
Dim res as Boolean
Try
client.Send(messageMail) 'envoi du mail
res = True
Catch ex As Exception
res = False
Finally
messageMail.Dispose()
End Try
Return res
Si ça ne résout pas le problème.
Option1, tu mets un try cacth pour toute la méthode.
Dans le catch tu fais afficher un message avec la trace de l’erreur.
Éventuellement, tu postes cette traces ici.
Option 1.1 plutôt qu’un message tu mets la trace dans un fichier fichier de log, c’est plus facile pour la copier coller.
Option2, tu écris un fichier de log toutes les n lignes de la méthode, tu y mets l’état des variables et des objets. Si n vaut 1 tu vas cerner au plus juste la ligne qui plante dès le premier essai, sinon tu auras peut-être à faire plusieurs essais.
Rien n’empêche de mixer les 2 options, au contraire même.
Si tu reviens poster log ou message d’erreur, poste le code modifié avec
Gildeplomb
Messages postés102Date d'inscriptionsamedi 29 décembre 2012StatutMembreDernière intervention24 mars 2021 Modifié le 2 févr. 2020 à 14:06
Merci ça marche comme sur des roulettes
Excuse moi pour la balise code
Public Function Envoi_Mail(Sujet As String, Nombretir As Integer, Mes As String) As Boolean 'Envoyer infos par mail
Dim client As New System.Net.Mail.SmtpClient
Dim res As Boolean
Using messageMail As New System.Net.Mail.MailMessage
client.Credentials = New System.Net.NetworkCredential("gildeplomb@hotmail.com", pass)
client.Port = 587 'définition du port
client.Host = "smtp.live.com" 'définition du serveur smtp
client.EnableSsl = True
messageMail.From = New System.Net.Mail.MailAddress(AdresseMail)
messageMail.To.Add("xxxxxx@xxx.fr")
messageMail.Subject = Sujet
messageMail.Body = Mes
Try
client.Send(messageMail) 'envoi du mail
res = True
Catch ex As Exception
MessageBox.Show(ex.ToString)
res = False
End Try
messageMail.Dispose()
End Using
Return res
End Function
vb95
Messages postés3418Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention31 mai 2023165 1 févr. 2020 à 17:46
Bonjour
Si tout fonctionne nickel ( ce que l'on souhaite ) pense à clôturer le sujet