public void CreateMessage(QueuedEmailMessage message) { _sqlObjectFactory.GetConnection().Using(connection => connection.Command("INSERT INTO pf_QueuedEmailMessage (FromEmail, FromName, ToEmail, ToName, Subject, Body, HtmlBody, QueueTime) VALUES (@FromEmail, @FromName, @ToEmail, @ToName, @Subject, @Body, @HtmlBody, @QueueTime)") .AddParameter("@FromEmail", message.FromEmail) .AddParameter("@FromName", message.FromName) .AddParameter("@ToEmail", message.ToEmail) .AddParameter("@ToName", message.ToName) .AddParameter("@Subject", message.Subject) .AddParameter("@Body", message.Body) .AddParameter("@HtmlBody", message.HtmlBody.GetObjectOrDbNull()) .AddParameter("@QueueTime", message.QueueTime) .ExecuteNonQuery()); }
public void ComposeAndQueue(Topic topic, User user, string topicLink, string unsubscribeLink) { var settings = _settingsManager.Current; var body = String.Format(Resources.SubscribedEmailBody, settings.ForumTitle, topic.Title, topicLink, unsubscribeLink, settings.MailSignature, Environment.NewLine); var message = new QueuedEmailMessage { Body = body, Subject =String.Format(Resources.SubscribedEmailSubject, topic.Title), ToEmail = user.Email, ToName = user.Name, FromEmail = settings.MailerAddress, FromName = settings.ForumTitle, QueueTime = DateTime.UtcNow }; _queuedQueuedEmailRepo.CreateMessage(message); }
public void ComposeAndQueue(User user, string subject, string body, string htmlBody, string unsubscribeLink) { var settings = _settingsManager.Current; var ps = String.Format("{1}{1}Unsubscribe: {0}", unsubscribeLink, Environment.NewLine); var message = new QueuedEmailMessage { Body = body + ps, Subject = subject, ToEmail = user.Email, ToName = user.Name, FromEmail = settings.MailerAddress, FromName = settings.ForumTitle, QueueTime = DateTime.UtcNow }; if (!String.IsNullOrWhiteSpace(htmlBody)) message.HtmlBody = String.Format("{0}<p>Unsubscribe: <a href=\"{1}\">{1}</a></p>", htmlBody, unsubscribeLink); _queuedQueuedEmailRepo.CreateMessage(message); }
public SmtpStatusCode Send(QueuedEmailMessage message) { if (message == null) throw new ArgumentNullException("message"); var from = new MailAddress(message.FromEmail, message.FromName); var to = new MailAddress(message.ToEmail, message.ToName); var mailMessage = new MailMessage(from, to) { Subject = message.Subject, Body = message.Body }; if (!String.IsNullOrWhiteSpace(message.HtmlBody)) { var altView = AlternateView.CreateAlternateViewFromString(message.HtmlBody, Encoding.UTF8, "text/html"); altView.TransferEncoding = TransferEncoding.SevenBit; mailMessage.AlternateViews.Add(altView); } mailMessage.Headers.Add("X-MessageID", message.MessageID.ToString()); return Send(mailMessage); }
public QueuedEmailMessage GetOldestQueuedEmailMessage() { QueuedEmailMessage message = null; _sqlObjectFactory.GetConnection().Using(connection => connection.Command("SELECT TOP 1 MessageID, FromEmail, FromName, ToEmail, ToName, Subject, Body, HtmlBody, QueueTime FROM pf_QueuedEmailMessage ORDER BY QueueTime") .ExecuteReader() .ReadOne(r => message = new QueuedEmailMessage { MessageID = r.GetInt32(0), FromEmail = r.GetString(1), FromName = r.GetString(2), ToEmail = r.GetString(3), ToName = r.GetString(4), Subject = r.GetString(5), Body = r.GetString(6), HtmlBody = r.NullStringDbHelper(7), QueueTime = r.GetDateTime(8) })); return message; }
public void ComposeAndQueue(User user, string resetLink) { if (user == null) throw new ArgumentNullException("user"); if (String.IsNullOrEmpty(resetLink)) throw new ArgumentException("resetLink"); var settings = _settingsManager.Current; var body = String.Format(Resources.ForgotPasswordEmail , settings.ForumTitle, resetLink, settings.MailSignature, Environment.NewLine); var message = new QueuedEmailMessage { Body = body, Subject = String.Format(Resources.ForgotPasswordSubject, settings.ForumTitle), ToEmail = user.Email, ToName = user.Name, FromEmail = settings.MailerAddress, FromName = settings.ForumTitle, QueueTime = DateTime.UtcNow }; _queuedQueuedEmailRepo.CreateMessage(message); }