Enviar un correo cuando se produce una excepción con el mensaje de ésta

2871 vistas

En el Global.asax:



csharp
  1. using System.Web.Mail;
  2. using System.Text;
  3. protected void Application_Error(Object sender, EventArgs e)
  4. {
  5.   System.Exception ex = Server.GetLastError().GetBaseException();
  6.   MailMessage message = new MailMessage();
  7.                  
  8.   message.From="emaildelsitio";
  9.   message.To="mail de recepción";
  10.   message.Subject = ex.Message.Tostring();//cuerpo del mensaje
  11.  
  12.   stringBuilder cadena = new stringBuilder();
  13.  
  14.   cadena.Append("<b>Error en la página</b>
  15.  
  16. ");
  17.   cadena.Append("Detalles :
  18.  
  19. ");
  20.   cadena.Append("Fecha : "+DateTime.Now.Tostring()+"
  21.  
  22. ");
  23.   cadena.Append("Pila : "+ex.StackTrace.Tostring()+"
  24.  
  25. ");
  26.   cadena.Append("Código : "+ex.Source.Tostring()+"
  27.  
  28. ");
  29.   cadena.Append("Url :"+Request.Url.Tostring());
  30.  
  31.   message.BodyFormat=MailFormat.Html;
  32.   message.Priority=MailPriority.High;
  33.   message.Body=chainne.Tostring();
  34.  
  35.   SmtpMail.SmtpServer="localhost";
  36.   SmtpMail.Send(message);
  37. }



Nota: si especificamos una dirección de correo errónea en la propiedad From, es posible que el servidor SMTP rechace el envÃo.

No olvidar poner al inicio del global.asax :



csharp
  1. using System.Web.Mail;