How to Create Extension Method to Send Email in ASP.NET Error Handling

No.of Views788
Bookmarked0 times
Downloads 
Votes0
By  jalpesh   On  01 Jan 2011 07:01:53
Tag : ASP.NET , Exception Handling
In this article, I will explain How to Create Extension Method to Send Email in ASP.NET Error Handling. The Error Handling is important for any application to ignore unnecessary failure. So in this article I show how to use the Extension Method to implement it.
emailbookmarkadd commentsprint

Images in this article missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at info@codegain.com

 

Introduction

In this article, I will explain How to Create Extension Method to Send Email in ASP.NET Error Handling. The Error Handling is important for any application to ignore unnecessary failure. So in this article I show how to use the Extension Method to implement it.

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.

C# Code

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";
          smtpClient.Port = 587;
          smtpClient.Send(mailMessage);
 
         
      }
  }
}

After creating an extension method let us that extension method to handle error like following in page load event of page.

C# Code

using System;
 
namespace Experiement
{
  public partial class WebForm1 : System.Web.UI.Page
  {
      protected void Page_Load(object sender,System.EventArgs e)
      {
          try
          {
              throw new Exception("My custom Exception");
          }
          catch (Exception ex)
          {
              ex.SendErrorEmail();
              Response.Write(ex.Message);
          }
      }
 
  }
}

Now in above code I have generated custom exception for example but in production It can be any Exception. And you can see I have use ex.SendErrorEmail() function in catch block to send email. That’s it.. Now it will throw exception and you will email in your email box like below. 

Image Loading

That’s its. It’s so simple.

Conclusion

Through this article you have learned How to Create Extension Method to Send Email in ASP.NET Error Handling. Hopes help. thank for reading.

 
Sign Up to vote for this article
 
About Author
 
jalpesh
Occupation-Software Engineer
Company-DotNetJaps
Member Type-Expert
Location-India
Joined date-08 May 2010
Home Page-http://www.dotnetjalps.com
Blog Page-http://www.dotnetjalps.com
I am jalpesh vadgamaa an Microsoft MVP for Visual C# and BrainBench Certified ASP.NET Developer having experience of five year in Microsoft .NET Technology.I am working as Project Leader in Mid Size company.My work area comprises of Enterprise Level projects using ASP.NET and other Microsoft .NET Technologies.Please feel free to contact me for any queries via posting comments on my blog I will try to reply as early as possible.
 
 
Other popularSectionarticles
Comments
There is no comments for this articles.
Leave a Reply
Title:
Display Name:
Email:
(not display in page for the security purphase)
Website:
Message:
Please refresh your screen using Ctrl+F5
If you can't read this number refresh your screen
Please input the anti-spam code that you can read in the image.
^ Scroll to Top