public MessagingMessageModel GetMailMessage(Guid messageId) { MessagingMessage message = this.UnitOfWork.MessagingMessageRepository.GetById(messageId); MessagingMessageModel messageDto = AutoMapper.Mapper.Map <MessagingMessage, MessagingMessageModel>(message); return(messageDto); }
public MessagingMessageModel GetMailMessage(Guid templateId, Dictionary <string, string> values) { MessagingTemplateContent messageTemplate = this.GetAvailableMessageTemplate(templateId); if (messageTemplate == null) { throw new InvalidOperationException(String.Format("Invalid Email Template: {0}", templateId)); } MessagingMessage message = new MessagingMessage() { Id = Guid.NewGuid(), MessagingTemplateContentId = messageTemplate.Id, MessagingSubject = databindingHelper.bind(messageTemplate.MessagingSubject, values), MessagingFromName = databindingHelper.bind(messageTemplate.MessagingFromName, values), MessagingFromEmailAddress = databindingHelper.bind(messageTemplate.MessagingFromEmailAddress, values), MessagingTo = databindingHelper.bind(messageTemplate.MessagingTo, values), MessagingCc = databindingHelper.bind(messageTemplate.MessagingCc, values), MessagingBcc = databindingHelper.bind(messageTemplate.MessagingBcc, values), MessagingContent = databindingHelper.bind(messageTemplate.MessagingContent, values), Tags = messageTemplate.Tags, IsSent = false, IsMarkedAsRead = false, SentDate = null, CreatedDate = DateTime.UtcNow }; this.UnitOfWork.MessagingMessageRepository.Insert(message); this.UnitOfWork.SaveChanges(); MessagingMessageModel model = Mapper.Map <MessagingMessage, MessagingMessageModel>(message); return(model); }
public async Task SendAsync(MessagingMessageModel mailMessage) { Logger.Debug(String.Format("{0} is sending email *{1}* to *{2}*", Sender.ToString(), mailMessage.MessagingSubject, mailMessage.MessagingTo)); await Sender.SendAsync(mailMessage); this.UpdateMessagingMessage(mailMessage); Logger.Debug(String.Format("{0} sent email *{1}* to *{2}*", Sender.ToString(), mailMessage.MessagingSubject, mailMessage.MessagingTo)); }
public async Task SendAsync(Guid templateId, Dictionary <string, string> values) { MessagingMessageModel message = this.GetEmailMessage(templateId, values); Logger.Debug(String.Format("Sending Email *{0}* to *{1}*", message.MessagingSubject, message.MessagingTo)); await this.SendAsync(message); Logger.Debug(String.Format("Email *{0}* sent to *{1}*", message.MessagingSubject, message.MessagingTo)); }
private void UpdateMessagingMessage(MessagingMessageModel message) { MessagingMessage msg = new MessagingMessage() { Id = message.Id, EmailDeliveryProvider = Sender.ToString(), IsSent = true, SentDate = DateTime.UtcNow }; this.UnitOfWork.MessagingMessageRepository.Update(msg, x => x.IsSent, x => x.SentDate, x => x.EmailDeliveryProvider); this.UnitOfWork.SaveChanges(); }
public async Task SendAsync(MessagingMessageModel mailMessage) { if (mailMessage == null) { throw new ArgumentNullException("mailMessage"); } MailMessage msg = new MailMessage(mailMessage.MessagingFromEmailAddress, mailMessage.MessagingTo, mailMessage.MessagingSubject, mailMessage.MessagingContent); string providerServerUrl = System.Configuration.ConfigurationManager.AppSettings["gmail:Host"]; int providerServerPort = int.Parse(System.Configuration.ConfigurationManager.AppSettings["gmail:Port"]); string displayName = System.Configuration.ConfigurationManager.AppSettings["gmail:DisplayName"]; string username = System.Configuration.ConfigurationManager.AppSettings["gmail:CredentialUserName"]; string passworkHash = System.Configuration.ConfigurationManager.AppSettings["gmail:CredentialPasswordHash"]; string securityStamp = System.Configuration.ConfigurationManager.AppSettings["gmail:SecurityStamp"]; string password = Commons.Crypto.DecryptStringAES(passworkHash, securityStamp); bool enableSsl = bool.Parse(System.Configuration.ConfigurationManager.AppSettings["gmail:EnableSsl"]); Logger.Info(String.Format("{0} ({1}:{2}) is using {3} to send email.", this.ToString(), providerServerUrl, providerServerPort, username)); if (msg.From == null) { msg.From = new MailAddress(username, displayName); } using (var smtpClient = new SmtpClient(providerServerUrl)) { smtpClient.Credentials = new System.Net.NetworkCredential(username, password); smtpClient.EnableSsl = enableSsl; smtpClient.Port = providerServerPort; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; //smtpClient.SendCompleted += SmtpClientSendCompleted; //var userState = msg; //Task t = new Task(() => smtpClient.SendAsync(msg, userState)); smtpClient.Send(msg); MailAddress mail = msg.To.FirstOrDefault(); if (mail != null) { Logger.Info(String.Format("Email Send: {0}", mail.Address)); } //await t; } }
public MessagingMessageModel GetEmailMessage(Guid templateId, Dictionary <string, string> values) { MessagingMessageModel message = this.MessagingMessageService.GetMailMessage(templateId, values); return(message); }