namespace CommunityServer.Components { using System; using System.Collections; using System.Net; using System.Net.Mail; using System.Web.Mail; public class SendImmediatelyProvider : EmailQueueProvider { #region Member variables protected string databaseOwner = "dbo"; private string connectionString = null; private ProviderHelper sqlHelper = null; #endregion #region Constructor public SendImmediatelyProvider(string databaseOwner, string connectionString) { this.connectionString = connectionString; this.databaseOwner = databaseOwner; sqlHelper = ProviderHelper.Instance(); } #endregion public override void DeleteQueuedEmail(Guid emailID) {} public override ArrayList DequeueEmail(int settingsID) { return new ArrayList(); } public override void QueueEmail(System.Web.Mail.MailMessage message) { // the next line may need changing if there is more than one site registered // in your CS installation SiteSettings site = SiteSettingsManager.GetSiteSettings(1000); // setup the SMTP client // note that some settings, such as Windows Authentication, have not been // catered for here. SmtpClient smtpClient; if (String.IsNullOrEmpty(site.SmtpPortNumber)) smtpClient = new SmtpClient(site.SmtpServer); else smtpClient = new SmtpClient(site.SmtpServer, Convert.ToInt32(site.SmtpPortNumber)); smtpClient.UseDefaultCredentials = false; if (site.SmtpServerRequiredLogin) { NetworkCredential credential = new NetworkCredential(site.SmtpServerUserName, site.SmtpServerPassword); smtpClient.Credentials = credential; } // build a System.Net.Mail.MailMessage object from the supplied System.Web.Mail.MailMessage object. System.Net.Mail.MailMessage netMessage = new System.Net.Mail.MailMessage(message.From, message.To); netMessage.Subject = message.Subject; netMessage.Body = message.Body; netMessage.IsBodyHtml = (message.BodyFormat == MailFormat.Html); netMessage.BodyEncoding = message.BodyEncoding; netMessage.Priority = System.Net.Mail.MailPriority.Normal; // send the message smtpClient.Send(netMessage); } public override void QueueSendingFailure(ArrayList list, int failureInterval, int maxNumberOfTries) {} } }