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 !
Donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
- 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.
Partager