Mega Code Archive

 
Categories / C# / Network
 

Sends a MailMessage object using the SMTP settings

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 {   /// <summary>   /// Utilities for the entire solution to use.   /// </summary>   public static class Utils   {     /// <summary>     /// Sends a MailMessage object using the SMTP settings.     /// </summary>     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;       }     }     /// <summary>     /// Sends the mail message asynchronously in another thread.     /// </summary>     /// <param name="message">The message to send.</param>     public static void SendMailMessageAsync(MailMessage message)     {       ThreadPool.QueueUserWorkItem(delegate { Utils.SendMailMessage(message); });     }     /// <summary>     /// Occurs after an e-mail has been sent. The sender is the MailMessage object.     /// </summary>     public static event EventHandler<EventArgs> EmailSent;     private static void OnEmailSent(MailMessage message)     {       if (EmailSent != null)       {         EmailSent(message, new EventArgs());       }     }     /// <summary>     /// Occurs after an e-mail has been sent. The sender is the MailMessage object.     /// </summary>     public static event EventHandler<EventArgs> EmailFailed;     private static void OnEmailFailed(MailMessage message)     {       if (EmailFailed != null)       {         EmailFailed(message, new EventArgs());       }     }   } }