} // private static void DoSendEmail(MailMessage emailMsg) { string emailService = UtilityManager.GetAppKeyValue("emailService", "smtp"); if (emailService == "mailgun") { SendEmailViaMailgun(emailMsg); } else if (emailService == "serviceApi") { SendEmailViaApi(emailMsg); } else if (emailService == "smtp") { SmtpClient smtp = new SmtpClient(UtilityManager.GetAppKeyValue("SmtpHost")) { UseDefaultCredentials = false, Credentials = new NetworkCredential("mparsons", "SomeNewCreds") }; smtp.Send(emailMsg); //SmtpMail.Send(email); } //else if ( emailService == "sendGrid" ) //{ // EmailViaSendGrid( emailMsg ); //} else { //no service api LoggingHelper.DoTrace(2, "***** EmailManager.SendEmail - UNHANDLED EMAIL SERVICE ENCOUNTERED ******"); return; } }
public static bool IsMessageInCache(string message) { if (string.IsNullOrWhiteSpace(message)) { return(false); } string key = UtilityManager.GenerateMD5String(message); try { if (HttpRuntime.Cache[key] != null) { var msgExists = ( string )HttpRuntime.Cache[key]; if (msgExists.ToLower() == message.ToLower()) { LoggingHelper.DoTrace(7, "LoggingHelper. Duplicate message: " + message); return(true); } } } catch { } return(false); }
private static void SendEmailViaMailgun(MailMessage emailMsg) { bool valid = true; string status = ""; var sendingDomain = System.Configuration.ConfigurationManager.AppSettings["MailgunSendingDomainName"]; var apiKey = System.Configuration.ConfigurationManager.AppSettings["MailgunSecretAPIKey"]; if (string.IsNullOrWhiteSpace(sendingDomain)) { //no service api LoggingHelper.DoTrace(2, "***** EmailManager.SendEmailViaMailgun - no email service has been configured"); return; } var apiKeyEncoded = Convert.ToBase64String(UTF8Encoding.UTF8.GetBytes("api" + ":" + apiKey)); var url = "https://api.mailgun.net/v3/" + sendingDomain + "/messages"; // var email = new MailgunEmail() { BodyHtml = emailMsg.Body, From = emailMsg.From.Address, BCC = emailMsg.Bcc.ToString(), Subject = emailMsg.Subject }; email.To.Add(emailMsg.To.ToString()); email.CC.Add(emailMsg.CC.ToString()); if (emailMsg.Attachments != null && emailMsg.Attachments.Count > 0) { //need to be able to handle attachments } var parameters = email.GetMultipartFormDataContent(); //var parameters2 = email.GetContent2(); //var client2 = new MailgunClient( sendingDomain, apiKey ); try { using (var client = new HttpClient()) { System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", apiKeyEncoded); var result = client.PostAsync(url, parameters).Result; //var result = client.PostAsync( url, parameters2 ).Result; valid = result.IsSuccessStatusCode; status = valid ? result.Content.ReadAsStringAsync().Result : result.ReasonPhrase; } if (!valid) { LoggingHelper.DoTrace(2, "***** EmailManager.SendEmailViaMailgun - error on send: " + status); } } catch (Exception ex) { LoggingHelper.LogError(ex, "SendEmailViaMailgun"); } }
public static bool IsADuplicateRecentSessionMessage(string message) { string sessionKey = UtilityManager.GenerateMD5String(message); bool isDup = false; try { if (HttpContext.Current.Session != null) { string msgExists = HttpContext.Current.Session[sessionKey].ToString(); if (msgExists.ToLower() == message.ToLower()) { LoggingHelper.DoTrace(7, "LoggingHelper. Duplicate message: " + message); return(true); } } } catch { } return(isDup); }
} // public static bool IsADuplicateRequest(string message) { string sessionKey = GetCurrentSessionId() + "_lastError"; bool isDup = false; try { if (HttpContext.Current.Session != null) { string lastAction = HttpContext.Current.Session[sessionKey].ToString(); if (lastAction.ToLower() == message.ToLower()) { LoggingHelper.DoTrace(7, "ActivityServices. Duplicate message: " + message); return(true); } } } catch { } return(isDup); }
private static void SendEmailViaApi(MailMessage emailMsg) { string emailServiceUri = UtilityManager.GetAppKeyValue("SendEmailService"); if (string.IsNullOrWhiteSpace(emailServiceUri)) { //no service api LoggingHelper.DoTrace(2, "***** EmailManager.SendEmail - no email service has been configured"); return; } //else if ( emailServiceUri.ToLower().Equals( "sendgrid" ) ) //{ // EmailViaSendGrid( emailMsg ); // return; //} //else if ( emailServiceUri.ToLower().Equals( "smtp" ) ) //{ // EmailViaSmtp( emailMsg ); // return; //} var email = new Email() { Message = emailMsg.Body, From = emailMsg.From.Address, To = emailMsg.To.ToString(), CC = emailMsg.CC.ToString(), BCC = emailMsg.Bcc.ToString(), IsHtml = true, Subject = emailMsg.Subject }; var postBody = JsonConvert.SerializeObject(email); PostRequest(postBody, emailServiceUri); }
/// <summary> /// Sends an email message to the system administrator /// </summary> /// <param name="emailTo">admin resource responsible for exceptions</param> /// <param name="subject">Email subject</param> /// <param name="message">Email message</param> /// <returns>True id message was sent successfully, otherwise false</returns> public static bool NotifyAdmin(string emailTo, string subject, string message) { char[] delim = new char[1]; delim[0] = ','; string emailFrom = UtilityManager.GetAppKeyValue("systemNotifyFromEmail"); string cc = UtilityManager.GetAppKeyValue("systemAdminEmail"); if (emailTo == "") { emailTo = cc; cc = ""; } //avoid infinite loop by ensuring this method didn't generate the exception if (message.IndexOf("EmailManager.NotifyAdmin") > -1) { //skip may be error on send return(true); } else { if (emailTo.ToLower() == cc.ToLower()) { cc = ""; } message = message.Replace("\r", "<br/>"); MailMessage email = new MailMessage(emailFrom, emailTo); //try to make subject more specific //if: workNet Exception encountered, try to insert type if (subject.IndexOf("Finder Exception") > -1) { subject = FormatExceptionSubject(subject, message); } subject = FormHelper.CleanText(subject); subject = System.Text.RegularExpressions.Regex.Replace(subject, @"\r\n?|\n", ""); email.Subject = subject; if (message.IndexOf("Type:") > 0) { int startPos = message.IndexOf("Type:"); int endPos = message.IndexOf("Error Message:"); if (endPos > startPos) { subject += " - " + message.Substring(startPos, endPos - startPos); } } if (cc.Trim().Length > 0) { cc = cc.Replace(";", ","); //email.CC.Add( CC ); string[] ccSplit = cc.Trim().Split(delim); foreach (string item in ccSplit) { if (item.Trim() != "") { string addr = HandleProxyEmails(item.Trim()); MailAddress ma = new MailAddress(addr); email.CC.Add(ma); } } } email.Body = DateTime.Now + "<br>" + message.Replace("\n\r", "<br>"); email.Body = email.Body.Replace("\r\n", "<br>"); email.Body = email.Body.Replace("\n", "<br>"); email.Body = email.Body.Replace("\r", "<br>"); email.IsBodyHtml = true; //email.BodyFormat = MailFormat.Html; try { //The trace was a just in case, if the send fails, a LogError call will be made anyway. Set to a high level so not shown in prod LoggingHelper.DoTrace(11, "EmailManager.NotifyAdmin: - Admin email was requested:\r\nSubject:" + subject + "\r\nMessage:" + message); if (UtilityManager.GetAppKeyValue("sendEmailFlag", "false") == "TRUE") { DoSendEmail(email); } if (UtilityManager.GetAppKeyValue("logAllEmail", "no") == "yes") { LogEmail(1, email); } return(true); } catch (Exception exc) { LoggingHelper.LogError("EmailManager.NotifyAdmin(): Error while attempting to send:" + "\r\nSubject:" + subject + "\r\nMessage:" + message + "\r\nError message: " + exc.ToString(), false); } } return(false); } //