Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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'>&nbsp;</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);
            }
        }