Bonjour,
J'ai une application qui envoie un mail. Elle procède de la façon suivante
Si le mdp est bon, pas de soucie.
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 MailMessage monMail = new MailMessage(); MailAddress exp = new MailAddress(*****@gmail.com", "Test programme"); monMail.From = exp; monMail.To.Add(new MailAddress("panda.developpeur@gmail.com", "Test programme")); monMail.CC.Add(new MailAddress("panda.developpeur@gmail.com", "Test programme")); monMail.Subject = "test"; monMail.Body = "envoyé"; SmtpClient client = new SmtpClient("smtp.gmail.com", 587); client.EnableSsl = true; client.Credentials = new NetworkCredential("*****@gmail.com", line); //Line qui correspond à un mdp quelconque i++; client.Send(monMail);
Maintenant j'ai deux cas SmtpExceptionque je n'arrive pas vraiment à bien gérer. Et surtout à dissocier.
Déjà mon catch
Si le mdp n'est pas bon donc erreur celle ci exactement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 catch (SmtpException e) { Console.WriteLine("Le mdp n'est pas bon numéro " + i +" : "+ line + " " + e.Message +"\n"); } }
Dans cette erreur, si je retape le bon mdp après, je peux me connecter.Interception de System.Net.Mail.SmtpException
HResult=-2146233088
Message=Le serveur SMTP requiert une connexion sécurisée ou le client n'était pas authentifié. La réponse du serveur était : 5.5.1 Authentication Required. Learn more at
Source=System
StackTrace:
à System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)
à System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)
à System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)
à System.Net.Mail.SmtpClient.Send(MailMessage message)
à FindPassword.Program.Main(String[] args) dans c:\Users\MKSJ\Documents\GitHub\Password\Password\Program.cs:ligne 48
InnerException:
par contre si je me suis tromper trop de fois j'ai toujours une SmtpException
celle-ci
et donc la même si j'utilise le bon mdp, cette erreur va se reproduire.Interception de System.Net.Mail.SmtpException
HResult=-2146233088
Message=Échec d'envoi du courrier.
Source=System
StackTrace:
à System.Net.Mail.SmtpClient.Send(MailMessage message)
à FindPassword.Program.Main(String[] args) dans c:\Users\MKSJ\Documents\GitHub\Password\Password\Program.cs:ligne 48
InnerException: System.IO.IOException
HResult=-2146232800
Message=Impossible de lire les données de la connexion de transport : net_io_connectionclosed.
Source=System
StackTrace:
à System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
à System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
à System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
à System.Net.Mail.CheckCommand.Send(SmtpConnection conn, String& response)
à System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, MailAddress from, Boolean allowUnicode)
à System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, Boolean allowUnicode, SmtpFailedRecipientException& exception)
à System.Net.Mail.SmtpClient.Send(MailMessage message)
InnerException:
(Donc je suppose que c'est l'erreur qui doit empêcher le brut force. Mais en réalité je ne suis même pas sur de ce qui provoque ce changement d'erreur.)
Donc voila j’aimerai pouvoir dissocier ces deux source d'erreur dans mon programme pour à chaque fois appliquer une solution différente. Mais je n'y arrive pas.
Savez vous comment faire ?
Partager