This is a mirror of official site: http://jasper-net.blogspot.com/

ASP.NET Error Handling: Creating an extension method to send error email

| Sunday, January 9, 2011
Error handling in asp.net required to handle any kind of error occurred. We all are using that in one or another scenario. But some errors are there which will occur in some specific scenario in production environment.In this case we can’t show our programming errors to the End user. So we are going to put a error page over there or whatever best suited as per our requirement. But as a programmer we should know that error so we can track the scenario and we can solve that error or can handle error. In this kind of situation an Error Email comes handy. Whenever any occurs in system it will going to send error in our email.

Here I am going to write a extension method which will send errors in email. From asp.net 3.5 or higher version of .NET framework  its provides a unique way to extend your classes. Here you can fine more information about extension method. So lets create extension method via implementing a static class like following. I am going to use same code for sending email via my Gmail account from here. Following is code for that.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net.Mail;

namespace Experiement
{
   public static class MyExtension
   {
       public static void SendErrorEmail(this Exception ex)
       {
           MailMessage mailMessage = new MailMessage(new MailAddress("from@gmail.com")
                                      , new MailAddress("to@gmail.com"));
           mailMessage.Subject = "Exception Occured in your site";
           mailMessage.IsBodyHtml = true;

           System.Text.StringBuilder errorMessage = new System.Text.StringBuilder();

           errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}","Exception",ex.Message));
           errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", "Stack Trace", ex.StackTrace));

           if (ex.InnerException != null)
           {
               errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", " Inner Exception", ex.InnerException.Message));
               errorMessage.AppendLine(string.Format("<B>{0}</B>:{1}", "Inner Stack Trace", ex.InnerException.StackTrace));
           }

           mailMessage.Body = errorMessage.ToString();

           System.Net.NetworkCredential networkCredentials = new
           System.Net.NetworkCredential("youraccount@gmail.com", "password");
           
           SmtpClient smtpClient = new SmtpClient();
           smtpClient.EnableSsl = true;
           smtpClient.UseDefaultCredentials = false;
           smtpClient.Credentials = networkCredentials;
           smtpClient.Host = "smtp.gmail.com";

Read more: Beyond Relational

Posted via email from .NET Info

0 comments: