PRoblème avec envoi d'email et gestion des exceptions
Bonjour à tous,
Je rencontre un problème avec l'envoi d'email ET avec la gestion des exceptions.
Concernant l'envoi d'email, mon programme focntionne bien avec l'envoi d'un email, mais pose problème, de façon aléatoire, avec l'envoi multiple (appel à la même fonction d'envoi d'email dans une boucle).
Hier, lors de l'envoi de 20 emails (pour info : avec CC), j'ai eu le message dans le journal des événements (extrait) lors de l'envoi du dernier email :
"The following information is part of the event: System.Net.Mail.SmtpException: Failure sending mail. ---> System.Threading.ThreadAbortException: Thread was being aborted."
Suivi d'un autre message :
" Exception type: HttpException
Exception message: Request timed out. "
Ces messages ne m'aide pas à comprendre la cause du problème.
En plus j'avais mis en place une gestion d'exceptions (code ci-dessous) mais je me rend compte (en mettant un point d'arrêt sur la ligne "Dim i As integer =0") que je ne rentre jamais dans la gestion des exceptions (le Catch).
Je viens de faire un test (emai sans expéditeur) et je ne vais pas le Catch, mais j'ai bien un enregistrement dans le journal d'événement (donc géré par le système et pas par mon programme) mais aucun message à l'écran !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Try
client.Send(email)
Catch ex As SmtpFailedRecipientsException
Dim i As Integer = 0
For i = 0 To ex.InnerExceptions.Length
Dim status As SmtpStatusCode = ex.InnerExceptions(i).StatusCode
If (status = SmtpStatusCode.MailboxBusy Or status = SmtpStatusCode.MailboxUnavailable) Then
Dim str As String
str = "Envoi en échec, nouvel essai quand vous aurez cliquer sur OK"
str = str.ToUpper()
Response.Write(String.Format("<script>alert(""{0}"");</script>", str))
EventLog.WriteEntry("Site WEB", "Problème envoi email erreur n°" & status)
client.Send(email)
Else
Dim str As String
str = "Echec dans l'envoi du message " & ex.FailedRecipient(i)
str = str.ToUpper()
Response.Write(String.Format("<script>alert(""{0}"");</script>", str))
EventLog.WriteEntry("Site WEB", "Echec dans l'envoi du message " & ex.FailedRecipient(i) & " Erreur n°" & status)
End If
i = i + 1
Next
End Try |
Donc :
- De quoi peut venir mon problème d'envoi d'email (sachant que j'ai renvoyé l'email qui avait générer le message d'erreur et qu'il est bien passé) ?
- Pourquoi je ne vais pas le Catch ?
Par avance, merci.