Voici le code.smtpException n'a pas été gérée par le code utilisateur
void sendMail()
{
MailMessage mail = new MailMessage();
mail.To.Add("[email protected]");
mail.From = new MailAddress("[email protected]", txt_name.Text);
mail.Subject = txt_subject.Text;
mail.Body = txt_body.Text;
SmtpClient smtp = new SmtpClient("smtp.gmail.com");
smtp.EnableSsl = true;
NetworkCredential yetki = new NetworkCredential("[email protected]", "11111111");
smtp.Credentials = yetki;
smtp.Send(mail);
Response.Write("mailiniz başarılı bir şekilde gönderilmiştir");
}
protected void btn_gonder_Click(object sender, EventArgs e)
{
sendMail();
}
@gmcalab Parce que c'est un code d'infrastructure. Je ne le mettrais dans sendMail que si je prévoyais de prendre des mesures définitives pour corriger l'erreur et terminer avec succès l'appel à sendMail, ou si je prévoyais de relancer une exception plus spécialisée. Si je suis juste l'affichage d'une boîte de message, je le veux en dehors des parties réutilisables du code. Je ne voudrais pas appeler sendMail à partir d'un service et le faire essayer d'afficher une boîte de message que l'utilisateur ne verra jamais. – AaronLS
@gmcalab Je veux dire vraiment, tout le but était juste de lui montrer un essai/attraper. Le sujet de l'endroit où placer le try/catch et ce qu'il faut réellement faire dans le catch varie énormément en fonction du contexte dans lequel il utilise ce code. Vous êtes borné à penser qu'il existe une solution unique pour tous. – AaronLS
@gmcalab FYI J'ai donné à votre solution un upvote parce que je crois que c'est tout aussi valable que ma solution. Encore une fois, l'essai consiste à diviser les cheveux parce que c'est une discussion qui pourrait être très vaste et dépasser la portée de la question. – AaronLS