Network C#

using System;
using System.IO;
using System.Net.Mail;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Configuration;
using System.Globalization;
using System.Web;
using System.Web.Configuration;
using System.Threading;
using System.Reflection;
using System.Collections;
using System.Xml;
using System.Net;
using System.Web.Caching;
namespace BlogEngine.Core
{
  /// 
  /// Utilities for the entire solution to use.
  /// 

  public static class Utils
  {
    /// 
    /// Sends a MailMessage object using the SMTP settings.
    /// 

    public static void SendMailMessage(MailMessage message)
    {
      if (message == null)
        throw new ArgumentNullException("message");
      try
      {
        message.IsBodyHtml = true;
        message.BodyEncoding = Encoding.UTF8;
        SmtpClient smtp = new SmtpClient(BlogSettings.Instance.SmtpServer);
        smtp.Credentials = new System.Net.NetworkCredential(BlogSettings.Instance.SmtpUserName, BlogSettings.Instance.SmtpPassword);
        smtp.Port = BlogSettings.Instance.SmtpServerPort;
        smtp.EnableSsl = BlogSettings.Instance.EnableSsl;
        smtp.Send(message);
        OnEmailSent(message);
      }
      catch (SmtpException)
      {
        OnEmailFailed(message);
      }
      finally
      {
        // Remove the pointer to the message object so the GC can close the thread.
        message.Dispose();
        message = null;
      }
    }
    /// 
    /// Sends the mail message asynchronously in another thread.
    /// 

    /// The message to send.
    public static void SendMailMessageAsync(MailMessage message)
    {
      ThreadPool.QueueUserWorkItem(delegate { Utils.SendMailMessage(message); });
    }
    /// 
    /// Occurs after an e-mail has been sent. The sender is the MailMessage object.
    /// 

    public static event EventHandler EmailSent;
    private static void OnEmailSent(MailMessage message)
    {
      if (EmailSent != null)
      {
        EmailSent(message, new EventArgs());
      }
    }
    /// 
    /// Occurs after an e-mail has been sent. The sender is the MailMessage object.
    /// 

    public static event EventHandler EmailFailed;
    private static void OnEmailFailed(MailMessage message)
    {
      if (EmailFailed != null)
      {
        EmailFailed(message, new EventArgs());
      }
    }
  }
}