public void GenerateRetryEmail(string ClientId) { try { log.Info("Generating Retry Email"); var emailService = new SMTPEmailService(MailSettings.SmtpSection().Network.Host); var overrideToList = MailSettings.EmailOverrideTo != null?MailSettings.EmailOverrideTo.ToList() : null; var payload = new EmailPayload { FromEmailAddress = MailSettings.SmtpSection().From, To = overrideToList != null && overrideToList.Count > 0 ? overrideToList : new List <string> { Config.Instance.EmailTooManyRetriesTo }, Subject = Config.Instance.EmailTooManyRetriesSubject, Body = $"Retry count has exceeded {Config.Instance.EmailTooManyRetriesCount} from client {ClientId}. Please review provided interface data.", IsBodyHtml = true, }; emailService.Send(payload); } catch (Exception e) { log.Error("Fail GenerateRetryEmail", e); } }
public void GenerateErrorMessageEmail(string Message) { try { log.Info("Generating ErrorMessage Email"); var emailService = new SMTPEmailService(MailSettings.SmtpSection().Network.Host); var overrideToList = MailSettings.EmailOverrideTo != null?MailSettings.EmailOverrideTo.ToList() : null; var payload = new EmailPayload { FromEmailAddress = MailSettings.SmtpSection().From, To = overrideToList.Count > 0 ? overrideToList : new List <string> { Config.Instance.EmailErrorMessageTo }, Subject = "CusRelService Error", Body = Message, IsBodyHtml = true, }; emailService.Send(payload); } catch (Exception e) { log.Error("Fail ErrorMessage Email", e); } }
public Result EmailTicketAssigned(Ticket ticket) { var result = new Result(); if (ticket != null) { var userResult = servicesProxy.UserService.GetUser(ticket.Assignment.Employee.Username); if (userResult.OK && userResult.User != null && userResult.User.GetsNotificationOnAssignment && IsValidEmail(userResult.User.Email)) { string emailSettings = servicesProxy.SettingsService.GetSetting("EmailTicketAssigned").Setting.Value; string emailCc = Regex.Match(emailSettings, "CC:([^|]*)").Groups[1].Value; string emailBcc = Regex.Match(emailSettings, "BCC:([^|]*)").Groups[1].Value; string emailSubject = Regex.Match(emailSettings, "SUBJECT:([^|]*)").Groups[1].Value; string emailBody = Regex.Match(emailSettings, "BODY:([^|]*)").Groups[1].Value; string[] overrideToList; smtpSettings.TryGetValue("OVERRIDETO", out overrideToList); try { var emailService = new SMTPEmailService(smtpSettings["HOST"].FirstOrDefault()); var payload = new EmailPayload { FromEmailAddress = smtpSettings["FROM"].FirstOrDefault(), To = overrideToList != null && overrideToList.Length > 0 ? overrideToList.ToList() : new List <string> { userResult.User.Email }, Subject = emailSubject.Replace("{Ticket.Id}", ticket.Id.ToString()), Body = emailBody. Replace("{Ticket.Id}", ticket.Id.ToString()). Replace("{Ticket.Priority}", ticket.Priority.HasValue ? ticket.Priority.Value.ToString() : "no priority"). Replace("<br />", "<br />\r\n"), CC = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailCc) ? emailCc.Split(';').Select(a => a.Trim()).ToList() : null), BCC = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailBcc) ? emailBcc.Split(';').Select(a => a.Trim()).ToList() : null), IsBodyHtml = true, }; emailService.Send(payload); } catch (Exception e) { result.SetFail(e); } } else { result.SetFail(string.Format("User {0} does not have a valid email or is not configured to receive notifications. Notification not sent.", ticket.Assignment.Employee.Username)); } } return(result); }
public Result EmailHighPriorityChange(Ticket Ticket) { var result = new Result(); if (Ticket != null) { if (IsValidEmail(Ticket.Assignment.GroupContact.Email)) { var emailDeptChange = servicesProxy.SettingsService.GetSetting("EmailHighPriorityChange").Setting.Value; var emailCc = Regex.Match(emailDeptChange, "CC:([^|]*)").Groups[1].Value; var emailBcc = Regex.Match(emailDeptChange, "BCC:([^|]*)").Groups[1].Value; var emailSubject = Regex.Match(emailDeptChange, "Subject:([^|]*)").Groups[1].Value; emailSubject = emailSubject.Replace("{Ticket.Id}", Ticket.Id.ToString()); var emailBody = Regex.Match(emailDeptChange, "Body:([^|]*)").Groups[1].Value; emailBody = emailBody.Replace("{Ticket.Reasons}", Ticket.Reasons != null ? string.Join(", ", Ticket.Reasons.ToArray()) : ""); emailBody = emailBody.Replace("{Ticket.Id}", Ticket.Id.ToString()); emailBody = emailBody.Replace("{Ticket.Comments}", Ticket.Comments); emailBody = emailBody.Replace("<br />", "<br />\r\n"); try { var emailService = new SMTPEmailService(smtpSettings["HOST"].FirstOrDefault()); string[] overrideToList; smtpSettings.TryGetValue("OVERRIDETO", out overrideToList); var payload = new EmailPayload { FromEmailAddress = smtpSettings["FROM"].FirstOrDefault(), To = overrideToList != null && overrideToList.Length > 0 ? overrideToList.ToList() : new List <string> { Ticket.Assignment.GroupContact.Email }, Subject = emailSubject, Body = emailBody, CC = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailCc) ? emailCc.Split(';').Select(a => a.Trim()).ToList() : null), BCC = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailBcc) ? emailBcc.Split(';').Select(a => a.Trim()).ToList() : null), IsBodyHtml = true, }; emailService.Send(payload); } catch (Exception e) { result.SetFail(e); } } else { result.SetFail(string.Format("User {0} does not have a valid email. Unable to send notification.", Ticket.Assignment.Employee.Username)); } } return(result); }
/// <summary> /// Add Customer Contact to database, then send Customer Feedback email /// </summary> /// <returns></returns> public ResponseResult SendToCusRelEntity() { var result = new ResponseResult(); try { var addCustomerResult = Repository.Context(requestState).AddCustomerContact(form); if (string.IsNullOrEmpty(requestState.FeedbackToEmail)) { result.OK = true; result.StatusCode = 200; } else if (addCustomerResult.OK) { var smtp = new SMTPEmailService(); var emailHeader = form.ActionEnum.Description().ToUpper(); var email = new EmailPayload { FromEmailAddress = form.Contact.SmtpEmail, To = new List <string> { requestState.FeedbackToEmail }, Subject = "AC Transit Public Customer Feedback " + emailHeader, Body = form.AsEmail(addCustomerResult.ID.ToString(CultureInfo.InvariantCulture), emailHeader), }; smtp.Send(email); result.OK = true; result.StatusCode = 200; } } catch (Exception e) { result = new ResponseResult(e) { StatusCode = 500, OK = false }; } return(result); }
public static void EmailError(Exception ex) { try { if (!EmailEnabled) { return; } var mailSubject = "ACTransit Application Exception - " + HttpContext.Current.Request.Url.Host + " - " + DateTime.Now; var lstEmailTo = MailSettings.ExceptionAlertToEmails.ToList(); var lstEmailCc = MailSettings.ExceptionAlertCcEmails.ToList(); var lstEmailBCc = MailSettings.ExceptionAlertBccEmails.ToList(); var sbMailContent = new StringBuilder(); var sbHeader = new StringBuilder(); var sbItem = new StringBuilder(); var sbBlankItem = new StringBuilder(); sbHeader.Append(" <tr>"); sbHeader.Append(" <td colspan='3'><h5><u>$Header</u></h5></td>"); sbHeader.Append(" </tr>"); sbItem.Append(" <tr>"); sbItem.Append(" <td style='width:16%;' valign='top'><b>$ItemHeader</b></td>"); sbItem.Append(" <td valign='top'>: </td>"); sbItem.Append(" <td valign='top'>$ItemValue</td>"); sbItem.Append(" </tr>"); sbBlankItem.Append(" <tr>"); sbBlankItem.Append(" <td colspan='3'> </td>"); sbBlankItem.Append(" </tr>"); sbMailContent.Append("<table cellpadding='10pt' cellspacing='10pt' style='font-family:Verdana; font-size:9pt;'>"); //******************** //Application Details //******************** //Application Details Header sbMailContent.Append(sbHeader); sbMailContent.Replace("$Header", "Application Details"); //Host sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "Host"); sbMailContent.Replace("$ItemValue", HttpContext.Current.Request.Url.Host); //URL sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "URL"); sbMailContent.Replace("$ItemValue", HttpContext.Current.Request.Url.OriginalString); //URL Referrer sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "URL Referrer"); sbMailContent.Replace("$ItemValue", (HttpContext.Current.Request.UrlReferrer == null ? "" : HttpContext.Current.Request.UrlReferrer.OriginalString)); //Browser sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "Browser"); sbMailContent.Replace("$ItemValue", HttpContext.Current.Request.Browser.Browser); //User sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "User"); sbMailContent.Replace("$ItemValue", HttpContext.Current.User.Identity.Name); //Date sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "Date"); sbMailContent.Replace("$ItemValue", DateTime.Now.ToString()); //Blank Row sbMailContent.Append(sbBlankItem); //**************** //Session Details //**************** //Session Details Header sbMailContent.Append(sbHeader); sbMailContent.Replace("$Header", "Session Details"); //Session Items if (HttpContext.Current.Session != null) { foreach (string strSessionKey in HttpContext.Current.Session.Keys) { sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", strSessionKey); sbMailContent.Replace("$ItemValue", (HttpContext.Current.Session[strSessionKey] == null ? "" : HttpContext.Current.Session[strSessionKey].ToString())); } } //Blank Row sbMailContent.Append(sbBlankItem); //************* //Form Details //************* //Form Details Header sbMailContent.Append(sbHeader); sbMailContent.Replace("$Header", "Form Details"); //Form Collection var ignoreKeys = MailSettings.EmailIgnoreKeys.ToList(); ignoreKeys.AddRange(new[] { "password", "pwd" }); var keys = (from object key in HttpContext.Current.Request.Form.Keys where ignoreKeys.All(k => key.ToString().IndexOf(k, StringComparison.OrdinalIgnoreCase) == -1) select key.ToString()).ToList(); foreach (var strFormKey in keys) { sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", strFormKey); sbMailContent.Replace("$ItemValue", (HttpContext.Current.Request.Unvalidated.Form[strFormKey] ?? "")); } //Blank Row sbMailContent.Append(sbBlankItem); //****************** //Exception Details //****************** sbMailContent.Append(sbHeader); sbMailContent.Replace("$Header", "Exception Details"); //Message sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "Message"); sbMailContent.Replace("$ItemValue", ex.Message); //Source sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "Source"); sbMailContent.Replace("$ItemValue", ex.Source); //TargetSite sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "TargetSite"); sbMailContent.Replace("$ItemValue", ex.TargetSite.ToString()); //StackTrace sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "StackTrace"); sbMailContent.Replace("$ItemValue", ex.StackTrace); //HelpLink sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "HelpLink"); sbMailContent.Replace("$ItemValue", ex.HelpLink); //Blank Row sbMailContent.Append(sbBlankItem); //************************ //Inner Exception Details //************************ if (ex.InnerException != null) { sbMailContent.Append(sbHeader); sbMailContent.Replace("$Header", "Inner Exception Details"); //Message sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "Message"); sbMailContent.Replace("$ItemValue", ex.InnerException.Message); //Source sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "Source"); sbMailContent.Replace("$ItemValue", ex.InnerException.Source); //TargetSite sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "TargetSite"); sbMailContent.Replace("$ItemValue", ex.InnerException.TargetSite.ToString()); //StackTrace sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "StackTrace"); sbMailContent.Replace("$ItemValue", ex.InnerException.StackTrace); //HelpLink sbMailContent.Append(sbItem); sbMailContent.Replace("$ItemHeader", "HelpLink"); sbMailContent.Replace("$ItemValue", ex.InnerException.HelpLink); //Blank Row sbMailContent.Append(sbBlankItem); } sbMailContent.Append("</table>"); // Send a Exception Mail var emailService = new SMTPEmailService(SmtpSec.Network.Host); emailService.Send(new EmailPayload { FromEmailAddress = SmtpSec.From, To = lstEmailTo, CC = lstEmailCc, BCC = lstEmailBCc, Subject = mailSubject, Body = sbMailContent.ToString(), IsBodyHtml = true }); } catch (Exception e) { WebLogger.Error(e.Message); } }