public async Task SendEmail(SendEmailMessage message, bool sandboxMode) { var mailjetRequest = new MailjetSendEmailsRequest { SandboxMode = sandboxMode, Messages = new List<MailjetEmail> { new MailjetEmail { To = new List<MailjetContact> { new MailjetContact { Email = message.To.Email, Name = message.To.Name } }, From = new MailjetContact { Email = _config.MailjetConfig.FromAddress, Name = _config.MailjetConfig.FromName }, Subject = message.Subject, HTMLPart = message.Body } } }; var basicAuthHeader = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes($"{_config.MailjetConfig.ApiKey}:{_config.MailjetConfig.ApiSecret}")); await PostJsonAsync(new Uri(_config.MailjetConfig.SendMailUrl, UriKind.Absolute), mailjetRequest, new[] { ("Authorization", basicAuthHeader) });
public static string SendEmail2Invitee(string host, string partyName, string inviteeEmail, string projectName, string inviterName, IEmailService emailService) { var url = host; var partyStr = String.Empty; if (!String.IsNullOrEmpty(partyName)) { partyStr = "作为“" + partyName + "”"; } string temp = "<p>尊敬的用户,您好!</p>" + "<p>" + inviterName + "已通过【DBWorld】邀请您," + partyStr + "参与到“" + projectName + "”中,请点击下方地址及时查看。</p>" + "<a href='" + HttpUtility.HtmlEncode(url) + "'>" + HttpUtility.HtmlEncode(url) + "</a>" + "<p>(如无法打开链接,请复制上面的链接粘贴到浏览器地址栏。)</p>" + "<p>感谢您对DBWorld工程云的关注!DBWorld祝您一切顺利!</p>" + "<p>来自:DBWorld工程云【DBWorld】</p>"; temp = temp.Replace("+", "%2B");//+号会解析为空所以这里转换下 var message = new SendEmailMessage { MailTo = inviteeEmail, Title = "您已被邀请到" + projectName + "项目", Body = temp, IsHtml = true }; //Log.Info("API开始发送邀请邮件..."); var sendEmailRes = ProjectMembersController.SendInvitationEmail(message, emailService); if (String.IsNullOrEmpty(sendEmailRes)) { return(string.Empty); } return(sendEmailRes); }
public virtual ActionResult ForgotPassword(string email, bool captchaValid, string captchaErrorMessage) { if (!captchaValid) { ModelState.AddModelError("captcha", captchaErrorMessage); } if (ModelState.IsValid) { var user = YouConfDbContext.UserProfiles .FirstOrDefault(x => x.Email == email); if (user != null && user.UserId > 0 && OAuthWebSecurity.HasLocalAccount(user.UserId)) { string token = WebSecurity.GeneratePasswordResetToken(user.UserName); //Send them an email UserMailer mailer = new UserMailer(); var mvcMailMessage = mailer.PasswordReset(user.Email, user.UserName, token); var emailMessage = new SendEmailMessage() { Body = mvcMailMessage.Body, To = user.Email, Subject = "Password reset request" }; SendQueueMessage(emailMessage); return(View("PasswordResetEmailSent")); } } return(View()); }
private void SendEmail(string email, string name, int storedEmailId) { var sendEmailMessage = new SendEmailMessage() { From = new EmailContact { Name = _emailParametersProvider.DocumentEmailSenderName, Email = _emailParametersProvider.DocumentEmailSenderAddress }, To = new List <EmailContact> { new EmailContact { Name = name, Email = email } }, Subject = MailSubject, TextPart = MailTextPart, HTMLPart = MailTextPart, Payload = new EmailPayload { Id = storedEmailId, Trackable = true, InstanceId = _instanceId } }; var emailAttachments = new List <EmailAttachment>(); foreach (var attachment in ObservableAttachments) { emailAttachments.Add(new EmailAttachment { ContentType = MimeMapping.GetMimeMapping(attachment.FileName), Filename = attachment.FileName, Base64Content = Convert.ToBase64String(attachment.ByteFile) }); } sendEmailMessage.Attachments = emailAttachments; var serializedMessage = JsonSerializer.Serialize(sendEmailMessage); var sendingBody = Encoding.UTF8.GetBytes(serializedMessage); var logger = new Logger <RabbitMQConnectionFactory>(new NLogLoggerFactory()); var connectionFactory = new RabbitMQConnectionFactory(logger); var connection = connectionFactory.CreateConnection(_configuration.MessageBrokerHost, _configuration.MessageBrokerUsername, _configuration.MessageBrokerPassword, _configuration.MessageBrokerVirtualHost); var channel = connection.CreateModel(); var properties = channel.CreateBasicProperties(); properties.Persistent = true; channel.BasicPublish(_configuration.EmailSendExchange, _configuration.EmailSendKey, false, properties, sendingBody); }
public void EmailSender([QueueTrigger(QueueNames.SendEmail, Connection = "StorageProdIden")] SendEmailMessage emailMessage, ILogger log) { log.LogInformation($"Sending email to: {emailMessage.Email} {emailMessage.Title}"); _emailService.SendEmailAsync(emailMessage.Email, emailMessage.Title, emailMessage.HtmlMessage); log.LogInformation($"Email sent to: {emailMessage.Email} {emailMessage.Title}"); }
public void NotifyEmployee(string orderNumber, string signature) { var configuration = _uow.GetAll <InstanceMailingConfiguration>().FirstOrDefault(); string messageText = $"Оповещение о пришедшей оплате с неверной подписью: {signature}" + $"для платежа по заказу №{orderNumber}"; var sendEmailMessage = new SendEmailMessage { From = new EmailContact { Name = _emailParametersProvider.DocumentEmailSenderName, Email = _emailParametersProvider.DocumentEmailSenderAddress }, To = new List <EmailContact> { new EmailContact { Name = "Уважаемый пользователь", Email = _emailParametersProvider.InvalidSignatureNotificationEmailAddress } }, Subject = $"Неккоректная подпись успешной оплаты заказа №{orderNumber}", TextPart = messageText, HTMLPart = messageText, Payload = new EmailPayload { Id = 0, Trackable = false } }; var serializedMessage = JsonSerializer.Serialize(sendEmailMessage); var sendingBody = Encoding.UTF8.GetBytes(serializedMessage); var Logger = new Logger <RabbitMQConnectionFactory>(new NLogLoggerFactory()); var connectionFactory = new RabbitMQConnectionFactory(Logger); var connection = connectionFactory.CreateConnection( configuration.MessageBrokerHost, configuration.MessageBrokerUsername, configuration.MessageBrokerPassword, configuration.MessageBrokerVirtualHost); var channel = connection.CreateModel(); var properties = channel.CreateBasicProperties(); properties.Persistent = true; channel.BasicPublish(configuration.EmailSendExchange, configuration.EmailSendKey, false, properties, sendingBody); }
public void PublishToSubscriber(Message pMessage) { EmailService eService = new EmailService(); if (pMessage is SendEmailMessage) { SendEmailMessage lMessage = pMessage as SendEmailMessage; SendEmailMessageToEmailMessage lVisitor = new SendEmailMessageToEmailMessage(); lMessage.Accept(lVisitor); eService.SendEmail(lVisitor.Result); } }
static void Main(string[] args) { var msg = new SendEmailMessage { FromEmail = "*****@*****.**", ToEmails = "*****@*****.**", Subject = "Covariance is hard", Body = "Lets hope this example works" }; var q = new Queue(); q.Enqueue(msg); var msgOut = q.Dequeue(); }
public void Visit(IVisitable pVisitable) { if (pVisitable is SendEmailMessage) { SendEmailMessage lMsg = pVisitable as SendEmailMessage; Result = new EmailMessage() { ToAddresses = lMsg.ToAddresses, FromAddresses = lMsg.FromAddresses, CCAddresses = lMsg.CCAddresses, BCCAddresses = lMsg.BCCAddresses, Date = lMsg.Date, Message = lMsg.Message, }; } }
public void PublishToSubscriber(Common.Model.Message pMessage) { if (pMessage is Common.Model.SendEmailMessage) { SendEmailMessage lMessage = pMessage as SendEmailMessage; EmailProvider.SendEmail( MessageTypeConverter.Instance.Convert < global::EmailService.MessageTypes.EmailMessage, global::EmailService.Business.Entities.EmailMessage>(new MessageTypes.EmailMessage() { Message = lMessage.Message, ToAddresses = lMessage.ToAddresses, Date = DateTime.Now }) ); } }
public void Visit(IVisitable pVisitable) { if (pVisitable is EmailMessageItem) { EmailMessageItem lItem = pVisitable as EmailMessageItem; Result = new SendEmailMessage() { ToAddresses = lItem.ToAddresses, FromAddresses = lItem.FromAddresses, CCAddresses = lItem.CCAddresses, BCCAddresses = lItem.BCCAddresses, Date = lItem.Date, Message = lItem.Message, Topic = lItem.Topic }; } }
public static EmailSendingModel ToSendingModel(this SendEmailMessage message) { if (message == null) { return(null); } Encoding encoding = new UTF8Encoding(); if (!String.IsNullOrWhiteSpace(message.EncodingName)) { encoding = Encoding.GetEncoding(message.EncodingName); } return(new EmailSendingModel { MailTo = message.MailTo, Title = message.Title, Body = message.Body, IsHtml = message.IsHtml, TextEncoding = encoding }); }
public async Task SendSMSesViaEagle(string smsEagleEmailAddress, string smsEagleName, List <string> recipientPhoneNumbers, string body) => await Task.WhenAll(recipientPhoneNumbers.Select(recipientPhoneNumber => { var sendEmail = new SendEmailMessage { To = new Contact { Email = smsEagleEmailAddress, Name = smsEagleName }, Body = body, Subject = recipientPhoneNumber, SendAsTextOnly = true }; var message = new Message(Encoding.UTF8.GetBytes(JsonSerializer.Serialize(sendEmail))) { Label = "RX.Nyss.ReportApi" }; return(_sendEmailQueueClient.SendAsync(message)); }));
static void Main(string[] args) { var q = new MessageQueue(); #region in another process var msg = new SendEmailMessage() { EmailAddress = "*****@*****.**" }; q.SendMessage(msg); #endregion var outMsg = q.GetNextMessage(); var handlerFactory = new MessageHandlerFactory(); var handler = handlerFactory.Create(msg); handler.ProcessMessage(msg); }
public async Task SendEmailWithMailjet(SendEmailMessage message, string whitelistedEmailAddresses, string whitelistedPhoneNumbers) { if (message.SendAsTextOnly) { if (_config.MailjetConfig.EnableFeedbackSms) { var sandboxMode = !(_config.MailjetConfig.SendFeedbackSmsToAll || IsWhiteListedPhoneNumber(message.Subject, whitelistedPhoneNumbers)); await _emailClient.SendEmailAsTextOnly(message, sandboxMode); } } else { var sandboxMode = false; if (!_config.MailjetConfig.SendToAll) { sandboxMode = !IsWhitelistedEmailAddress(whitelistedEmailAddresses, message.To.Email); } _logger.LogDebug($"Sending email to '{message.To.Email.Substring(0, Math.Min(message.To.Email.Length, 4))}...' SandboxMode: {sandboxMode}"); await _emailClient.SendEmail(message, sandboxMode); } }
private static SendEmailMessage GenerateMessage(string host, string partyName, string inviteEmail, string email, string projectName, long projectId, long userId, long partyId) { var url = host + "/Account/LoginForInvite?projectName=" + EncipherAndDecrypt.EncryptText(projectName) + "&projectId=" + EncipherAndDecrypt.EncryptText(projectId.ToString()) + "&userId=" + EncipherAndDecrypt.EncryptText(userId.ToString()) + "&inviteEmail=" + EncipherAndDecrypt.EncryptText(inviteEmail) + "&email=" + EncipherAndDecrypt.EncryptText(email) + "&partyId=" + EncipherAndDecrypt.EncryptText(partyId.ToString()); var partyStr = String.Empty; if (!String.IsNullOrEmpty(partyName)) { partyStr = "作为“" + partyName + "”"; } //var ssoUrl = AuthUtility.GetSSORegisterUri(); //var dbworldHomeUrl = AuthUtility.GetHomeHost().TrimEnd('/'); string temp = "<p>尊敬的用户,您好!</p>" + "<p>有人通过【DBWorld】邀请您," + partyStr + "参与到“" + projectName + "”中,点击下方地址申请加入该项目,或者将以下地址直接复制到地址栏回车</p>" + "<a href='" + HttpUtility.HtmlEncode(url) + "'>" + HttpUtility.HtmlEncode(url) + "</a>" + "<p>(如无法打开链接,请复制上面的链接粘贴到浏览器地址栏完成邀请。)</p>" //+ "<p>DBWorld工程云客户端下载地址:<a href='" + dbworldHomeUrl + "/intro/product/" + "'>客户端下载</a></p>" //+ "<p>DBWorld工程云账号注册地址:<a href='" + ssoUrl + "'>注册账户</a></p>" + "<p>感谢您对DBWorld工程云的关注!DBWorld祝您一切顺利!</p>" + "<p>来自:DBWorld工程云【DBWorld】</p>"; temp = temp.Replace("+", "%2B");//+号会解析为空所以这里转换下 var message = new SendEmailMessage { MailTo = inviteEmail, Title = "请加入" + projectName + "项目", Body = temp, IsHtml = true }; return(message); }
public void TestSendingEmailViaOperator() { Telegraph.Instance.UnRegisterAll(); DateTime sent = DateTime.Now; long emailOperatorId = Telegraph.Instance.Register(new OutlookEmailPublisherOperator(emailAccount, accountPassword)); Telegraph.Instance.Register <SendEmailMessage>(emailOperatorId); SendEmailMessage msg = new SendEmailMessage(); msg.Subject = "Testing email for operator sent message"; msg.ToEmailAddress = emailAccount; if (!Telegraph.Instance.Ask(msg).Wait(new TimeSpan(0, 0, 45))) { Assert.Fail("Waited too long to send a message"); } bool found = DoesEmailExistInInbox(msg); Assert.IsTrue(found, "We did not find the item in the inbox"); }
public ActionResult Register(RegisterModel model, string returnUrl) { if (ModelState.IsValid) { // Attempt to register the user try { WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email }); WebSecurity.Login(model.UserName, model.Password); //Send them an email UserMailer mailer = new UserMailer(); var mvcMailMessage = mailer.Welcome(model.UserName); var emailMessage = new SendEmailMessage() { Body = mvcMailMessage.Body, To = model.Email, Subject = "Welcome to YouConf" }; SendQueueMessage(emailMessage); if (!String.IsNullOrWhiteSpace(returnUrl)) { return(RedirectToLocal(returnUrl)); } return(RedirectToAction("Index", "Home")); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } // If we got this far, something failed, redisplay form return(View(model)); }
public void TestSendingEmail() { Telegraph.Instance.UnRegisterAll(); Telegraph.Instance.Register <SendEmailMessage, SendEmail>(() => new SendEmail(emailAccount, accountPassword, "Test Friendly Name")); SendEmailMessage msg = new SendEmailMessage(); msg.Subject = "Testing email for actor message"; msg.ToEmailAddress = emailAccount; var askTask = Telegraph.Instance.Ask(msg); if (!askTask.Wait(new TimeSpan(0, 0, 45))) { Assert.Fail("Waited too long to send a message"); } Assert.IsTrue(askTask.Status == System.Threading.Tasks.TaskStatus.RanToCompletion); bool found = DoesEmailExistInInbox(msg); Assert.IsTrue(found, "We did not find the item in the inbox"); }
public void btnSubmit_Click(object sender, EventArgs e) { DropDownList ddlinstaller = (DropDownList)Installers.FindControl("ddlInstallers"); if (enablePostCodeSearch == false) { Session[enumSessions.InstallerCompanyID.ToString()] = ddlinstaller.SelectedValue; Session[enumSessions.SelectedInstaller.ToString()] = ddlinstaller.SelectedItem; } db = new LinqToSqlDataContext(); string mycheck = ""; if (Request["dr"].ToString() == "d" || Request["dr"].ToString() == "u" || Request["dr"].ToString() == "r") { if (chkConfirm.Checked) { mycheck = "true"; } else { mycheck = "false"; } } else { mycheck = "true"; } if (mycheck == "true") { lblSubmitConfirm.Visible = false; string UserEmail = ""; string CompanyName = ""; string UserName = ""; string dr = Request["dr"].ToString(); if (dr == "u") { dr = "Upgrade"; } else if (dr == "u") { dr = "Downgrade"; } else { dr = "Regrade"; } UserName = Session[enumSessions.User_Name.ToString()].ToString(); UserEmail = Session[enumSessions.User_Email.ToString()].ToString(); CompanyName = CSLOrderingARCBAL.BAL.ArcBAL.GetARCName(Session[enumSessions.ARC_Id.ToString()].ToString()); MailMessage Message = new MailMessage(); if (UserName.Length == 0) { UserName = Session["UserId"].ToString(); } string id = Session[enumSessions.User_Id.ToString()].ToString(); var Data = (from d in db.UpDowngrades where d.UserId == id && d.Emailed == false && (d.ISEmizonUnit == false || (d.ISEmizonUnit == true && Convert.ToBoolean(d.NeedsEngineer) == true)) select d); db.SubmitChanges(); if (Data.Any()) { String EmailDevicelist = "<table cellspacing='1' cellpadding='1' border='1' width=\"100%\"><tr><td style=\"color: #888;\"><b>Request Type</b></td><td style=\"color: #888;\"><b>From</b></td><td style=\"color: #888;\"><b>To</b></td><td style=\"color: #888;\"><b>Reason</b></td><td style=\"color: #888;\"><b>ESN/SIM</b></td><td style=\"color: #888;\"><b>NUA/Data</b></td><td style=\"color: #888;\"><b>Chip Number</b></td><td style=\"color: #888;\"><b>EM No</b></td><td style=\"color: #888;\"><b>Installer</b></td><td style=\"color: #888;\"><b>ARC Ref</b></td></tr>"; foreach (var ud in Data) { EmailDevicelist += "<tr>"; // EmailDevicelist += "<td>" + dr + "</td>"; if (dr == "Upgrade") { EmailDevicelist += "<td td style=\"color: #0099cc;\">" + dr + "</td>"; //blue } else if (dr == "Downgrade") { EmailDevicelist += "<td td style=\"color: #000000;\">" + dr + "</td>"; //black } else { EmailDevicelist += "<td>" + dr + "</td>"; //black } string szReason = ""; if (Request["dr"].ToString() == "u") { szReason = "n/a"; } else { szReason = ud.Reason; } EmailDevicelist += "<td>" + ud.ItemFrom + "</td>"; EmailDevicelist += "<td>" + ud.ItemTo + "</td>"; EmailDevicelist += "<td>" + szReason + "</td>"; EmailDevicelist += "<td>" + ud.Simno + "</td>"; EmailDevicelist += "<td>" + ud.Datano + "</td>"; EmailDevicelist += "<td>" + ud.Chipno + "</td>"; EmailDevicelist += "<td>" + ud.EMNo + "</td>"; string selectedInstaller = GetInstallerName(ud.Installer); if (string.IsNullOrEmpty(selectedInstaller)) { EmailDevicelist += "<td>n/a</td>"; } else { EmailDevicelist += "<td>" + selectedInstaller + "</td>"; } EmailDevicelist += "<td>" + ud.ARCRef + "</td>"; EmailDevicelist += "</tr>"; } EmailDevicelist += "</table>"; //begin sonam String mailHtml = ReadTemplates.ReadMailTemplate(Server.MapPath("Template"), "EmailGrade.html"); StringBuilder objBuilder = new StringBuilder(); objBuilder.Append(mailHtml); objBuilder.Replace("{UserName}", UserName); objBuilder.Replace("{ArcName}", CompanyName); objBuilder.Replace("{UserEmail}", UserEmail); objBuilder.Replace("{DateofRequest}", DateTime.Now.ToString()); objBuilder.Replace("{Devicelist}", EmailDevicelist); //end sonam if (string.IsNullOrEmpty((string)HttpRuntime.Cache["EmailCC"])) { ApplicationDTO appdto; AppSettings appsett = new AppSettings(); appdto = appsett.GetAppValues(); mailCC = appdto.mailCC; } else { mailCC = (string)HttpRuntime.Cache["EmailCC"]; } string subjectMessage = ""; if (Request["dr"].ToString() == "u") { subjectMessage = "Upgrade Request"; } else if (Request["dr"].ToString() == "d") { subjectMessage = "Downgrade Request"; } else { subjectMessage = "Regrade Request : Needs Engineer Visit"; } SendEmailMessage sendEmail = new SendEmailMessage(); EmailMessage cslEmailMessage = new EmailMessage(); cslEmailMessage.From = mailFrom; cslEmailMessage.To = mailTO; cslEmailMessage.CC = UserEmail + ";" + mailCC + ";" + GetArcCcEmail(Session[enumSessions.ARC_Id.ToString()].ToString()); cslEmailMessage.BCC = ""; cslEmailMessage.Subject = subjectMessage; cslEmailMessage.Message = Convert.ToString(objBuilder.ToString()); sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage); //End Code sending email to msmq. db = new LinqToSqlDataContext(); var upData = (from data in db.UpDowngrades where data.UserId == Session[enumSessions.User_Id.ToString()].ToString() && (data.ISEmizonUnit == false || (data.ISEmizonUnit == true && Convert.ToBoolean(data.NeedsEngineer) == true)) select data); foreach (var d in upData) { d.Emailed = true; } db.SubmitChanges(); } // ** Flag Emizon units var EmizonUnits = (from data in db.UpDowngrades where data.UserId == Session[enumSessions.User_Id.ToString()].ToString() && data.ISEmizonUnit == true && Convert.ToBoolean(data.NeedsEngineer) == false select data); if (EmizonUnits.Any()) { foreach (var r in EmizonUnits) { r.AwaitingtobeProcessed = true; } db.SubmitChanges(); } pnlForm.Visible = false; divuc1.Visible = false; divuc2.Visible = false; pnlConfirm.Visible = true; PnlAwaitingtoBeProcessed.Visible = false; } else { lblSubmitConfirm.Visible = true; } Session[enumSessions.InstallerCompanyID.ToString()] = null; Session[enumSessions.SelectedInstaller.ToString()] = null; }
public object Any(SendEmailMessage request) { return(new SendEmailResponse { Result = $"Hello, {request.Name}!" }); }
public Task <HttpResponseMessage> SendActivateCodeEmail(SendEmailMessage model, TokenModel token) { TokenClient.RefreshToken(_client, token); return(_client.PostAsJsonAsync(_routePrefix + "/SendActivateCodeEmail", model)); }
public Task <HttpResponseMessage> SendForgotPasswordEmail(SendEmailMessage model) { return(_client.PostAsJsonAsync(_routePrefix + "/SendForgotPasswordEmail", model)); }
private bool SendCredentialsToEmail(string login, string password, string mailAddress, string fullName, IUnitOfWork unitOfWork) { var instanceId = Convert.ToInt32(unitOfWork.Session .CreateSQLQuery("SELECT GET_CURRENT_DATABASE_ID()") .List <object>() .FirstOrDefault()); var configuration = unitOfWork.GetAll <InstanceMailingConfiguration>().FirstOrDefault(); string messageText = $"Логин: { login }\n" + $"Пароль: { password }"; var sendEmailMessage = new SendEmailMessage() { From = new EmailContact { Name = _emailParametersProvider.DocumentEmailSenderName, Email = _emailParametersProvider.DocumentEmailSenderAddress }, To = new List <EmailContact> { new EmailContact { Name = fullName, Email = mailAddress } }, Subject = "Учетные данные для входа в программу Доставка Воды", TextPart = messageText, HTMLPart = messageText, Payload = new EmailPayload { Id = 0, Trackable = false, InstanceId = instanceId } }; try { var serializedMessage = JsonSerializer.Serialize(sendEmailMessage); var sendingBody = Encoding.UTF8.GetBytes(serializedMessage); var Logger = new Logger <RabbitMQConnectionFactory>(new NLogLoggerFactory()); var connectionFactory = new RabbitMQConnectionFactory(Logger); var connection = connectionFactory.CreateConnection(configuration.MessageBrokerHost, configuration.MessageBrokerUsername, configuration.MessageBrokerPassword, configuration.MessageBrokerVirtualHost); var channel = connection.CreateModel(); var properties = channel.CreateBasicProperties(); properties.Persistent = true; channel.BasicPublish(configuration.EmailSendExchange, configuration.EmailSendKey, false, properties, sendingBody); return(true); } catch (Exception e) { _logger.Error(e, e.Message); return(false); } }
private async Task PrepareAndSendEmails() { try { var sendingMessage = new SendEmailMessage(); using (var unitOfWork = UnitOfWorkFactory.CreateWithoutRoot("Document prepare worker")) { var emailsToSend = _emailRepository.GetEmailsForPreparingOrderDocuments(unitOfWork); sendingMessage.From = new EmailContact { Name = _emailParametersProvider.DocumentEmailSenderName, Email = _emailParametersProvider.DocumentEmailSenderAddress }; foreach (var counterpartyEmail in emailsToSend) { try { _logger.LogInformation($"Found message to prepare for stored email: { counterpartyEmail.StoredEmail.Id }"); sendingMessage.To = new List <EmailContact> { new EmailContact { Name = counterpartyEmail.Counterparty.FullName, Email = counterpartyEmail.StoredEmail.RecipientAddress } }; var document = counterpartyEmail.EmailableDocument; if (document == null) { counterpartyEmail.StoredEmail.State = StoredEmailStates.SendingError; counterpartyEmail.StoredEmail.Description = "Missing/deleted emailable document"; unitOfWork.Save(counterpartyEmail.StoredEmail); unitOfWork.Commit(); continue; } var template = document.GetEmailTemplate(); sendingMessage.Subject = $"{ template.Title } { document.Title }"; sendingMessage.TextPart = template.Text; sendingMessage.HTMLPart = template.TextHtml; var inlinedAttachments = new List <InlinedEmailAttachment>(); foreach (var item in template.Attachments) { inlinedAttachments.Add(new InlinedEmailAttachment { ContentID = item.Key, ContentType = item.Value.MIMEType, Filename = item.Value.FileName, Base64Content = item.Value.Base64Content }); } sendingMessage.InlinedAttachments = inlinedAttachments; var attachments = new List <EmailAttachment> { await PrepareDocument(document, counterpartyEmail.Type) }; sendingMessage.Attachments = attachments; sendingMessage.Payload = new EmailPayload { Id = counterpartyEmail.StoredEmail.Id, Trackable = true, InstanceId = _instanceId }; var serializedMessage = JsonSerializer.Serialize(sendingMessage); var sendingBody = Encoding.UTF8.GetBytes(serializedMessage); var properties = _channel.CreateBasicProperties(); properties.Persistent = true; _channel.BasicPublish(_emailSendExchange, _emailSendKey, properties, sendingBody); counterpartyEmail.StoredEmail.State = StoredEmailStates.WaitingToSend; unitOfWork.Save(counterpartyEmail.StoredEmail); unitOfWork.Commit(); } catch (Exception ex) { _logger.LogError($"Failed to process counterparty email { counterpartyEmail.Id }: { ex.Message }"); } } } } catch (Exception ex) { _logger.LogError(ex.Message); } }
public async Task SendEmailAsync(string email, string subject, string htmlMessage) { var emailMessage = new SendEmailMessage(email, subject, htmlMessage); await _queueService.SendMessageAsync(QueueNames.SendEmail, emailMessage); }
public static void SendEmailWithPrice(string OrderNo, string mailTO, SendEmailDTO sendEmailDTO, string mailFrom, string mailCC, bool isEmailFromViewOrders, bool?hasEmizonProducts, int orderID) { try { String ProductsList = ""; bool instadd_differs = false; string subjectsuffix = string.Empty; string templatePath = "Template"; SendEmailMessage sendEmail = new SendEmailMessage(); EmailMessage cslEmailMessage = new EmailMessage(); string emizonQueuePath = ConfigurationManager.AppSettings["EmizonQueue"].ToString();//could have used AppSettings but no point as another one is using config string mailSubject = "Order Confirmation - Order Ref: " + OrderNo; if (isEmailFromViewOrders) { if (mailTO.EndsWith("@csldual.com")) { subjectsuffix = "; Email Resent"; } mailSubject = mailSubject + subjectsuffix; templatePath = "../Template"; } String mailHtml = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate.html"); StringBuilder objBuilder = new StringBuilder(); objBuilder.Append(mailHtml); objBuilder.Replace("{OrderNo}", OrderNo); objBuilder.Replace("{OrderDate}", string.IsNullOrEmpty(sendEmailDTO.orderDate) ? "." : sendEmailDTO.orderDate); objBuilder.Replace("{OrderRef}", string.IsNullOrEmpty(sendEmailDTO.ARCOrderRefNo) ? "." : sendEmailDTO.ARCOrderRefNo); ARC arc = ArcBAL.GetArcInfoByUserId(new Guid(sendEmailDTO.userID)); string arcAdd = ""; if (arc != null) { arcAdd = arc.CompanyName == null ? "" : arc.CompanyName + ", "; arcAdd += arc.AddressOne + ", <br /> "; arcAdd += string.IsNullOrEmpty(arc.AddressTwo) ? "" : arc.AddressTwo + ", "; arcAdd += string.IsNullOrEmpty(arc.Town) ? "" : arc.Town + ",<br /> "; arcAdd += string.IsNullOrEmpty(arc.County) ? "" : arc.County + ", "; arcAdd += string.IsNullOrEmpty(arc.PostCode) ? "" : arc.PostCode + " <br />"; objBuilder.Replace("{Fax}", string.IsNullOrEmpty(arc.Fax) ? "." : arc.Fax); objBuilder.Replace("{Tel}", string.IsNullOrEmpty(arc.Telephone) ? "." : arc.Telephone); objBuilder.Replace("{ARC}", arcAdd); } objBuilder.Replace("{Username}", sendEmailDTO.userName); objBuilder.Replace("{UserEmail}", sendEmailDTO.userEmail); // OrderDetails LinqToSqlDataContext db = new LinqToSqlDataContext(); var products = db.USP_GetBasketProducts(Convert.ToInt32(sendEmailDTO.orderID)).ToList(); if (products != null && products.Count > 0) { string chipNos = ""; int countOption = 1; foreach (var prod in products) { int rowCount = db.USP_GetBasketProductsOnCheckOut(Convert.ToInt32(sendEmailDTO.orderID)).Where(i => i.ProductCode == prod.ProductCode.Trim()).Count(); ProductsList += "<tr><td style=\"background: #FFF7F7\">" + prod.ProductCode + "</td><td>" + prod.ProductName + "</td> <td style=\"background: #FFF7F7\">" + prod.ProductQty + "</td><td>£" + prod.Price; if (prod.ProductType == "Product") { chipNos = ""; var ChipNumbers = db.USP_GetBasketGPRSChipNumbersByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList(); if (ChipNumbers != null) { foreach (var chipno in ChipNumbers) { chipNos += string.IsNullOrEmpty(chipno.GPRSNo) ? "" : chipno.GPRSNo + "-"; chipNos += string.IsNullOrEmpty(chipno.PSTNNo) ? "" : chipno.PSTNNo + "-"; chipNos += string.IsNullOrEmpty(chipno.GSMNo) ? "" : chipno.GSMNo + "-"; //added GSM NO(PanelID) in email chipNos += string.IsNullOrEmpty(chipno.OptionName) ? "" : chipno.OptionName; chipNos += ","; if (chipno.PSTNNo == "" && chipno.OptionName == "" && chipno.GSMNo == "" && chipNos.Length > 0 )//added GSM NO(PanelID) in email { chipNos = chipNos.Remove(chipNos.Length - 1, 1); } } if (chipNos != "") { chipNos = chipNos.Substring(0, chipNos.Length - 1); ProductsList += "</td> <td style=\"background: #FFF7F7\">" + chipNos + "</td> </td></tr>"; } else { ProductsList += "</td> <td style=\"background: #FFF7F7\">Chip Numbers : Not Provided</td></tr>"; } } if (rowCount == 1) { var dependentproducts = db.USP_GetBasketDependentProductsByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList(); if (dependentproducts != null && dependentproducts.Count > 0) { foreach (var dp in dependentproducts) { ProductsList += "<tr><td>" + dp.ProductCode + "</td><td>" + dp.ProductName + "</td><td>" + dp.ProductQty + "</td><td>£" + dp.Price + "</tr>"; } } countOption = 0; } else if (rowCount == countOption) { var dependentproducts = db.USP_GetBasketDependentProductsByProductId(Convert.ToInt32(sendEmailDTO.orderID), prod.ProductId, prod.CategoryId).ToList(); if (dependentproducts != null && dependentproducts.Count > 0) { foreach (var dp in dependentproducts) { ProductsList += "<tr><td>" + dp.ProductCode + "</td><td>" + dp.ProductName + "</td><td>" + dp.ProductQty + "</td><td>£" + dp.Price + "</tr>"; } } } } countOption++; } } OrderDTO objorder = CSLOrderingARCBAL.BAL.OrdersBAL.GetOrderDetail(Convert.ToInt32(sendEmailDTO.orderID)); //objBuilder.Replace("{OrderTotal}", Convert.ToDecimal(lblDtlsOrderTotal.Text).ToString("c")); objBuilder.Replace("{OrderTotal}", "£" + Convert.ToDecimal(objorder.OrderTotal)); //objBuilder.Replace("{DeliveryTotal}", Convert.ToDecimal(lblDtlsDeliveryTotal.Text).ToString("c")); objBuilder.Replace("{DeliveryTotal}", "£" + Convert.ToDecimal(objorder.DeliveryCost)); //objBuilder.Replace("{VAT}", Convert.ToDecimal(lblDtlsVAT.Text).ToString("c")); objBuilder.Replace("{VAT}", "£" + Convert.ToDecimal(objorder.VATAmount)); //objBuilder.Replace("{TotalToPay}", Convert.ToDecimal(lblDtlsTotalToPay.Text).ToString("c")); objBuilder.Replace("{TotalToPay}", "£" + Convert.ToDecimal(objorder.TotalAmountToPay)); objBuilder.Replace("{DeliveryTypeName}", string.IsNullOrEmpty(sendEmailDTO.DdeliveryType) ? "" : sendEmailDTO.DdeliveryType); objBuilder.Replace("{DeliveryTypePrice}", "£" + sendEmailDTO.deliveryCost); objBuilder.Replace("{Installer}", InstallerBAL.GetAddressHTML2LineForEmail(new Guid(sendEmailDTO.installerID))); if (objorder.InstallationAddressId > 0) { instadd_differs = true; } else { instadd_differs = false; } if (instadd_differs)// || sendEmailDTO.InstallationAddId != 0) { //string InsAdd = InstallerBAL.GetAddressHTML2LineForEmail(Convert.ToInt32(Session[enumSessions.PreviousOrderId.ToString()].ToString())); string InsAdd = objorder.InstallationAddressId.HasValue ? InstallerBAL.GetAddressHTML2LineForEmail(objorder.InstallationAddressId.Value) : "Not Available"; objBuilder.Replace("{InstallerAddress}", "<td><div style=\"width: 100%; margin: 0; padding: 0;\"><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\"><tr><td style=\"text-align: left\"> <font color=\"#888\" size=\"2\" face=\"Arial\">" + InsAdd + " </font></td></tr></table></div></td>"); objBuilder.Replace("{HeadingInstallerAdd}", "<td><h3 style=\"font-size:11px; text-align: center; margin: 0; padding: 5px auto;\">Installation Address</h3></td>"); } else { objBuilder.Replace("{InstallerAddress}", ""); objBuilder.Replace("{HeadingInstallerAdd}", ""); } objBuilder.Replace("{DeliveredTo}", OrdersBAL.GetDeliveryAddressHTML2Line(Convert.ToInt32(sendEmailDTO.orderID))); objBuilder.Replace("{SpecialInstructions}", sendEmailDTO.specialInstructions); if (isEmailFromViewOrders) { objBuilder.Append("Email Resent"); } var distinctProduct = products.Select(i => i.ProductCode).Distinct(); foreach (var pro in distinctProduct) { products = db.USP_GetBasketProducts(Convert.ToInt32(sendEmailDTO.orderID)).Where(p => p.ProductCode == pro).Take(1).ToList(); foreach (var prod in products) { if (prod.IsCSDUser == true) { ProductsList += "<tr><td>" + prod.ProductCode + "</td><td>" + prod.Message + "</td></tr>"; } } } objBuilder.Replace("{ProductList}", ProductsList); if (mailTO != "" && mailTO.Trim() != "") { string[] mailFromList = mailFrom.Split(','); string[] mailCCList = mailCC.Split(','); string emailCC = string.Empty; foreach (string email in mailCCList) { emailCC += email + ","; } if (!string.IsNullOrEmpty(emailCC)) { emailCC = emailCC.TrimEnd(','); } //PUSH TO EMIZON QUEUE if (hasEmizonProducts.HasValue && hasEmizonProducts.Value) { EmizonOrderController.AddAPIRequestToQueue(emizonQueuePath, new Emizon.APIModels.MSMQTypes.QueueOrderMessage() { From = mailFrom, To = mailTO, CC = mailCC, BCC = mailCC, Subject = mailSubject, OrderHTMLBody = objBuilder.ToString(), orderID = orderID }); } else { //Add below code to send the email message via msmq not smtp -Priya 15/06/2017 //Remove Emizon placeholder objBuilder.Replace("{EmizonData}", ""); cslEmailMessage.From = mailFrom; cslEmailMessage.To = mailTO; cslEmailMessage.CC = emailCC; cslEmailMessage.BCC = emailCC; cslEmailMessage.Subject = mailSubject; cslEmailMessage.Message = objBuilder.ToString(); sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage); } //End Code sending email to msmq. } ApplicationDTO appSettings = new AppSettings().GetAppValues(); List <string> lstProductCodes = new List <string>(); lstProductCodes = appSettings.ConnectionOnlyCodes.Split(',').ToList(); bool connectionProductCodeExist = false; foreach (var x in distinctProduct) { if (lstProductCodes.Exists(e => e.EndsWith(x))) { connectionProductCodeExist = true; } } StringBuilder strURL = new StringBuilder(); if (connectionProductCodeExist) { #region buildURLs List <DCCCompany> lstDCCCompany = db.DCCCompanies.ToList(); foreach (DCCCompany company in lstDCCCompany) { var tableCodes = company.Productcode.Split(',').ToList(); foreach (string s in tableCodes) { if (distinctProduct.Contains(s)) //only create a link if the product exist in the basket items. { strURL.Append(" please <a href='" + company.InstructionsUrl + "'>Click here for " + company.company_name + "</a> or "); break; // once we add } } } #endregion string mailSubjectConnectionOnly = "ARC Connection Only - Order Confirmation - Order Ref: " + OrderNo; if (isEmailFromViewOrders) { if (mailTO.EndsWith("@csldual.com")) { subjectsuffix = "; Email Resent"; } mailSubjectConnectionOnly = mailSubjectConnectionOnly + subjectsuffix; } String mailHtmlConnectionOnly = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate_ConnectionOrders.html"); // String mailHtmlConnectionOnly = ReadTemplates.ReadMailTemplate(System.Web.HttpContext.Current.Server.MapPath(templatePath), "EmailTemplate_v2_ConnectionOrders.html"); StringBuilder objBuilderConnectionOnly = new StringBuilder(); objBuilderConnectionOnly.Append(mailHtmlConnectionOnly); objBuilderConnectionOnly.Replace("{InstallationURL}", strURL.ToString().TrimEnd(' ', 'o', 'r') + '.'); objBuilderConnectionOnly.Replace("{OrderNo}", OrderNo); objBuilderConnectionOnly.Replace("{OrderDate}", sendEmailDTO.orderDate); objBuilderConnectionOnly.Replace("{OrderRef}", string.IsNullOrEmpty(sendEmailDTO.ARCOrderRefNo) ? "." : sendEmailDTO.ARCOrderRefNo); objBuilderConnectionOnly.Replace("{OrderTotal}", "£" + objorder.OrderTotal); objBuilderConnectionOnly.Replace("{DeliveryTotal}", "£" + objorder.DeliveryCost); objBuilderConnectionOnly.Replace("{VAT}", "£" + objorder.VATAmount); objBuilderConnectionOnly.Replace("{TotalToPay}", "£" + objorder.TotalAmountToPay); objBuilderConnectionOnly.Replace("{DeliveryTypeName}", sendEmailDTO.DdeliveryType.ToString().TrimEnd(' ')); // objBuilderConnectionOnly.Replace("{DeliveryTypePrice}", "£" + sendEmailDTO.deliveryCost); objBuilderConnectionOnly.Replace("{Installer}", InstallerBAL.GetAddressHTML2LineForEmail(new Guid(sendEmailDTO.installerID))); if (arc != null) { objBuilderConnectionOnly.Replace("{Fax}", string.IsNullOrEmpty(arc.Fax) ? "." : arc.Fax); objBuilderConnectionOnly.Replace("{Tel}", string.IsNullOrEmpty(arc.Telephone) ? "." : arc.Telephone); objBuilderConnectionOnly.Replace("{ARC}", arcAdd); } objBuilderConnectionOnly.Replace("{Username}", sendEmailDTO.userName); objBuilderConnectionOnly.Replace("{UserEmail}", sendEmailDTO.userEmail); //comment below line if new RAc connection only template is approved if (instadd_differs) { string InsAddConnection = objorder.InstallationAddressId.HasValue ? InstallerBAL.GetAddressHTML2LineForEmail(objorder.InstallationAddressId.Value) : "Not Available"; //string InsAddConnection= InstallerBAL.GetInstallationAddressHTML2LineForEmail(Convert.ToInt32(Session[enumSessions.OrderId.ToString()].ToString())); objBuilderConnectionOnly.Replace("{InstallerAddress}", "<td><div style=\"width: 100%; margin: 0; padding: 0;\"><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"100%\"><tr><td style=\"text-align: left\"> <font color=\"#888\" size=\"2\" face=\"Arial\">" + InsAddConnection + " </font></td></tr></table></div></td>"); objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", "<td><h3 style=\"font-size:11px; text-align: center; margin: 0; padding: 5px auto;\">Installation Address</h3></td>"); } else { //objBuilderConnectionOnly.Replace("{InstallerAddress}", ""); // objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", ""); objBuilderConnectionOnly.Replace("{InstallerAddress}", ""); objBuilderConnectionOnly.Replace("{HeadingInstallerAdd}", ""); } // objBuilderConnectionOnly.Replace("{DeliveredTo}", OrdersBAL.GetDeliveryAddressHTML2Line(Convert.ToInt32(sendEmailDTO.orderID))); objBuilderConnectionOnly.Replace("{SpecialInstructions}", string.IsNullOrEmpty(sendEmailDTO.specialInstructions.Trim()) ? "." : sendEmailDTO.specialInstructions.Trim()); ProductsList = Regex.Replace(ProductsList, @"(?i)<(table|tr|td)(?:\s+(?:""[^""]*""|'[^']*'|[^""'>])*)?>", "<$1>"); objBuilderConnectionOnly.Replace("{ProductList}", ProductsList); LinqToSqlDataContext dbe = new LinqToSqlDataContext(); var connInstallerEmail = (from o in dbe.Orders join i in dbe.Installers on o.InstallerUnqCode equals i.UniqueCode.ToString() join ia in dbe.InstallerAddresses on i.AddressID equals ia.AddressID where o.OrderNo == OrderNo select ia.Email).Single(); if (string.IsNullOrEmpty(connInstallerEmail)) { connInstallerEmail = ConfigurationManager.AppSettings["TeleSalesEmail"].ToString(); } cslEmailMessage.From = mailFrom; cslEmailMessage.To = connInstallerEmail; cslEmailMessage.CC = mailCC; cslEmailMessage.BCC = mailCC; cslEmailMessage.Subject = mailSubjectConnectionOnly; cslEmailMessage.Message = Convert.ToString(objBuilderConnectionOnly.ToString()); sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage); } db.Dispose(); HttpContext.Current.ApplicationInstance.CompleteRequest(); } catch (Exception objException) { CSLOrderingARCBAL.LinqToSqlDataContext db; db = new CSLOrderingARCBAL.LinqToSqlDataContext(); db.USP_SaveErrorDetails(System.Web.HttpContext.Current.Request.Url.ToString(), "SendEmailWithPrice", Convert.ToString(objException.Message), Convert.ToString(objException.InnerException), Convert.ToString(objException.StackTrace), "", HttpContext.Current.Request.UserHostAddress, false, Convert.ToString(HttpContext.Current.Session[enumSessions.User_Id.ToString()])); } }
private void SendEmailConfirmation() { try { string dr = Request["dr"].ToString(); if (dr == "d") { dr = "Disconnect"; } else { dr = "Reconnect"; } UserName = Session[enumSessions.User_Name.ToString()].ToString(); UserEmail = Session[enumSessions.User_Email.ToString()].ToString(); CompanyName = GetARCName(Session[enumSessions.ARC_Id.ToString()].ToString()); using (db = new LinqToSqlDataContext()) { // ** NOn-edited ones var DrData = from d in db.DRs join ins in db.Installers on d.Installer equals ins.InstallerCompanyID.ToString() where d.UserId == Session[enumSessions.User_Id.ToString()].ToString() && d.Emailed == false && d.ISEmizonUnit == false && d.FreeTextEntry != true orderby d.DrId select new { d.Reason, d.Simno, d.Datano, d.Chipno, d.Installer, ins.CompanyName }; if (DrData.Any()) { String EmailDevicelist = "<table cellspacing='1' cellpadding='1' border='1' Width=\"60%\"><tr ><td style=\"color: #888;\"><b>Request Type</b></td><td style=\"color: #888;\"><b>Reason</b></td><td style=\"color: #888;\"><b>ESN/SIM</b></td><td style=\"color: #888;\"><b>NUA/Data</b></td><td style=\"color: #888;\"><b>Chip Number</b></td><td style=\"color: #888;\"><b>Installer</b></td></tr>"; foreach (var d in DrData) { EmailDevicelist += "<tr>"; if (dr == "Reconnect") { EmailDevicelist += "<td td style=\"color: #45b010;\">" + dr + "</td>"; //green } else if (dr == "Disconnect") { EmailDevicelist += "<td td style=\"color: #f64114;\">" + dr + "</td>"; //red } string szReason = ""; if (Request["dr"].ToString() == "r") { szReason = "n/a"; } else { szReason = d.Reason; } EmailDevicelist += "<td>" + szReason + "</td>"; EmailDevicelist += "<td>" + d.Simno + "</td>"; EmailDevicelist += "<td>" + d.Datano + "</td>"; EmailDevicelist += "<td>" + d.Chipno + "</td>"; EmailDevicelist += "<td>" + GetInstallerName(d.Installer) + "</td>"; EmailDevicelist += "</tr>"; } EmailDevicelist += "</table>"; String mailHtml = ReadTemplates.ReadMailTemplate(Server.MapPath("Template"), "EmailGrade.html"); StringBuilder objBuilder = new StringBuilder(); objBuilder.Append(mailHtml); objBuilder.Replace("{UserName}", UserName); objBuilder.Replace("{ArcName}", CompanyName); objBuilder.Replace("{UserEmail}", UserEmail); objBuilder.Replace("{DateofRequest}", DateTime.Now.ToString()); objBuilder.Replace("{Devicelist}", EmailDevicelist); string szMess = ""; if (Request["dr"].ToString() == "r") { szMess = "Reconnection Request"; } else { szMess = "Disconnection Request"; } SendEmailMessage sendEmail = new SendEmailMessage(); EmailMessage cslEmailMessage = new EmailMessage(); cslEmailMessage.From = mailFrom; cslEmailMessage.To = UserEmail + ";" + (Request["dr"].ToString() == "r" ? mailTO : string.Empty); cslEmailMessage.CC = mailCC + ";" + GetArcCcEmail(Session[enumSessions.ARC_Id.ToString()].ToString()); cslEmailMessage.BCC = ""; cslEmailMessage.Subject = szMess; cslEmailMessage.Message = Convert.ToString(objBuilder.ToString()); //adding emails to MSMQ sendEmail.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessage); } // ** Free Text ones var DrDataFreeText = from d in db.DRs join ins in db.Installers on d.Installer equals ins.InstallerCompanyID.ToString() where d.UserId == Session[enumSessions.User_Id.ToString()].ToString() && d.Emailed == false && d.ISEmizonUnit == false && d.FreeTextEntry == true orderby d.DrId select new { d.Reason, d.Simno, d.Datano, d.Chipno, d.Installer, ins.CompanyName }; if (DrDataFreeText.Any()) { String EmailDevicelistFreeText = "<table cellspacing='1' cellpadding='1' border='1' Width=\"60%\"><tr ><td style=\"color: #888;\"><b>Request Type</b></td><td style=\"color: #888;\"><b>Reason</b></td><td style=\"color: #888;\"><b>ESN/SIM</b></td><td style=\"color: #888;\"><b>NUA/Data</b></td><td style=\"color: #888;\"><b>Chip Number</b></td><td style=\"color: #888;\"><b>Installer</b></td></tr>"; foreach (var d in DrDataFreeText) { EmailDevicelistFreeText += "<tr>"; if (dr == "Reconnect") { EmailDevicelistFreeText += "<td td style=\"color: #45b010;\">" + dr + "</td>"; //green } else if (dr == "Disconnect") { EmailDevicelistFreeText += "<td td style=\"color: #f64114;\">" + dr + "</td>"; //red } string szReason = ""; if (Request["dr"].ToString() == "r") { szReason = "n/a"; } else { szReason = d.Reason; } EmailDevicelistFreeText += "<td>" + szReason + "</td>"; EmailDevicelistFreeText += "<td>" + d.Simno + "</td>"; EmailDevicelistFreeText += "<td>" + d.Datano + "</td>"; EmailDevicelistFreeText += "<td>" + d.Chipno + "</td>"; EmailDevicelistFreeText += "<td>" + GetInstallerName(d.Installer) + "</td>"; EmailDevicelistFreeText += "</tr>"; } EmailDevicelistFreeText += "</table>"; String mailHtmlFreeText = ReadTemplates.ReadMailTemplate(Server.MapPath("Template"), "EmailGrade.html"); StringBuilder objBuilderFreeText = new StringBuilder(); objBuilderFreeText.Append(mailHtmlFreeText); objBuilderFreeText.Replace("{UserName}", UserName); objBuilderFreeText.Replace("{ArcName}", CompanyName); objBuilderFreeText.Replace("{UserEmail}", UserEmail); objBuilderFreeText.Replace("{DateofRequest}", DateTime.Now.ToString()); objBuilderFreeText.Replace("{Devicelist}", EmailDevicelistFreeText); string szMessFreeText = ""; if (Request["dr"].ToString() == "r") { szMessFreeText = "Reconnection Request"; } else { szMessFreeText = "Disconnection Request"; } SendEmailMessage sendEmailFreeText = new SendEmailMessage(); EmailMessage cslEmailMessageFreeText = new EmailMessage(); cslEmailMessageFreeText.From = mailFrom; cslEmailMessageFreeText.To = UserEmail; cslEmailMessageFreeText.CC = mailTO + ";" + mailCC + ";" + GetArcCcEmail(Session[enumSessions.ARC_Id.ToString()].ToString()); cslEmailMessageFreeText.BCC = ""; cslEmailMessageFreeText.Subject = szMessFreeText; cslEmailMessageFreeText.Message = Convert.ToString(objBuilderFreeText.ToString()); //adding emails to MSMQ sendEmailFreeText.SendEmailMessageToQueue(ConfigurationManager.AppSettings["QueueName"].ToString(), cslEmailMessageFreeText); } var upData = (from data in db.DRs where data.UserId == Session[enumSessions.User_Id.ToString()].ToString() && data.Emailed == false && data.ISEmizonUnit == false select data); foreach (var r in upData) { r.Emailed = true; } db.SubmitChanges(); // ** Flag Emizon units var EmizonUnits = (from data in db.DRs where data.UserId == Session[enumSessions.User_Id.ToString()].ToString() && data.ISEmizonUnit == true select data); if (EmizonUnits.Any()) { foreach (var r in EmizonUnits) { r.AwaitingtobeProcessed = true; } db.SubmitChanges(); } } pnlForm.Visible = false; pnlConfirm.Visible = true; divuc1.Visible = false; divuc2.Visible = false; txtChipNo.Text = ""; } catch (Exception objException) { using (db = new LinqToSqlDataContext()) { db.USP_SaveErrorDetails(Request.Url.ToString(), "btnSubmit_Click", Convert.ToString(objException.Message), Convert.ToString(objException.InnerException), Convert.ToString(objException.StackTrace), "", HttpContext.Current.Request.UserHostAddress, false, Convert.ToString(HttpContext.Current.Session[enumSessions.User_Id.ToString()])); } } }
public async Task SendEmail( [ServiceBusTrigger("%SERVICEBUS_SENDEMAILQUEUE%", Connection = "SERVICEBUS_CONNECTIONSTRING")] SendEmailMessage message, [Blob("%WhitelistedPhoneNumbersBlobPath%", FileAccess.Read)] string whitelistedPhoneNumbers, [Blob("%WhitelistedEmailAddressesBlobPath%", FileAccess.Read)] string whitelistedEmailAddresses) => await _emailService.SendEmailWithMailjet(message, whitelistedEmailAddresses, whitelistedPhoneNumbers);
public Task <HttpResponseMessage> SendInvitationEmail(SendEmailMessage model, TokenModel token) { TokenClient.RefreshToken(_client, token); return(_client.PostAsJsonAsync(_memberRoutePrefix + "/SendInvitationEmail", model)); }