public async Task ProcessMessages(QueueMessage <MailMessage> message) { try { var mailSender = new GeneralMailSender(MailServer, UserName, Password); var mailMessage = new System.Net.Mail.MailMessage( message.Data.From, message.Data.To, message.Data.Subject, message.Data.Body) { IsBodyHtml = true, From = new MailAddress(message.Data.From, "Ciencia Argentina"), }; if (!string.IsNullOrWhiteSpace(message.Data.Cc)) { mailMessage.CC.Add(message.Data.Cc); } // si el mensaje es null significa que el maker controló algunas situaciones y no hay nada para enviar y el mensaje se puede remover de la queue await mailSender.SendAsync(mailMessage); Console.WriteLine($@"Email sent ({message.Data.Subject}) to: {message.Data.To}"); } catch (Exception e) { e.Log(null, "Enviando mail key GeneralMailSender"); var exmsg = $"Enviando mail : {e.Message}\nStackTrace:{e.StackTrace}"; Console.WriteLine(exmsg, @"Error"); if (message.DequeueCount < 20) { throw; } } }
public void ProcessMessages(QueueMessage <MailMessage> message) { try { var mailserver = ConfigurationManager.AppSettings["Mail.Server"]; var username = ConfigurationManager.AppSettings["Mail.Username"]; var password = ConfigurationManager.AppSettings["Mail.Password"]; var mailSender = new GeneralMailSender(mailserver, username, password); var mailMessage = new System.Net.Mail.MailMessage( message.Data.From, message.Data.To, message.Data.Subject, message.Data.Body) { IsBodyHtml = true }; // si el mensaje es null significa que el maker controló algunas situaciones y no hay nada para enviar y el mensaje se puede remover de la queue mailSender.Send(mailMessage); Console.WriteLine($"Email sent ({message.Data.Subject}) to: {message.Data.To}"); } catch (Exception e) { e.Log(null, "Enviando mail key GeneralMailSender"); var exmsg = $"Enviando mail : {e.Message}\nStackTrace:{e.StackTrace}"; Console.WriteLine(exmsg, "Error"); if (message.DequeueCount < 20) { throw; } } }
public static void Log(this Exception exception, HttpContext context, string customMessage, ExceptionAction action = ExceptionAction.Enqueue) { var url = "Not available"; var urlreferer = "Not available"; if (context != null) { url = context.Request.Url.ToString(); } if (context != null && context.Request.UrlReferrer != null) { urlreferer = context.Request.UrlReferrer.ToString(); } var message = new AppException { CustomMessage = string.IsNullOrWhiteSpace(customMessage) ? "ABServicios.Error" : customMessage, Exception = exception, Url = url, UrlReferrer = urlreferer, }; try { if (ExceptionAction.Enqueue.Equals(action) || ExceptionAction.SendMailAndEnqueue.Equals(action)) { AzureQueue.Enqueue(message); } } catch (Exception ex) { //estamos en la B, error del error } try { if (ExceptionAction.SendMail.Equals(action) || ExceptionAction.SendMailAndEnqueue.Equals(action)) { var mailSender = new GeneralMailSender("*****@*****.**", "Y@361]96KB{CPiw"); var mailMessage = new System.Net.Mail.MailMessage("*****@*****.**", "*****@*****.**", message.CustomMessage, message.Exception + "\n\n" + message.LogMessage + "\n\n" + message.Message + "\n\n" + message.StackTrace + "\n\n" + message.Url + "\n\n" + message.UrlReferrer + "\n\n" + message.InnerExceptionMessage); // si el mensaje es null significa que el maker controló algunas situaciones y no hay nada para enviar y el mensaje se puede remover de la queue mailSender.Send(mailMessage); } } catch (Exception ex) { //estamos en la B, error del error } try { Telemetry.TrackException(exception); } catch (Exception ex) { //estamos en la B, error del error } }
public void WhenSendEmailThenIsSent() { var mailserver = ConfigurationManager.AppSettings["Mail.Server"]; var username = ConfigurationManager.AppSettings["Mail.Username"]; var password = ConfigurationManager.AppSettings["Mail.Password"]; var adminmail = ConfigurationManager.AppSettings["AdminEmails"]; var mailSender = new GeneralMailSender(mailserver, username, password); var mailMessage = new System.Net.Mail.MailMessage(username, adminmail?.Split(',')[0] ?? throw new InvalidOperationException(), "Limb.Web.Tests", "TEST MESSAGE"); // si el mensaje es null significa que el maker controló algunas situaciones y no hay nada para enviar y el mensaje se puede remover de la queue mailSender.Send(mailMessage); }
public void ProcessMessages(QueueMessage <MailMessage> message) { try { var mailSender = new GeneralMailSender("*****@*****.**", "Y@361]96KB{CPiw"); var mailMessage = new System.Net.Mail.MailMessage(message.Data.From, message.Data.To, message.Data.Subject, message.Data.Body); // si el mensaje es null significa que el maker controló algunas situaciones y no hay nada para enviar y el mensaje se puede remover de la queue mailSender.Send(mailMessage); } catch (Exception e) { e.LogSilentNoHttp(string.Format("Enviando mail key {0}", "GeneralMailSender")); string exmsg = string.Format("Enviando mail : {0}\nStackTrace:{1}", e.Message, e.StackTrace); Trace.WriteLine(exmsg, "Error"); if (message.DequeueCount < 20) { throw; } } }
public static void Log(this Exception exception, HttpContext context, string customMessage, ExceptionAction action = ExceptionAction.Enqueue) { #if DEBUG return; #endif var url = "Not available"; var urlreferer = "Not available"; if (context != null) { url = context.Request.Url.ToString(); } if (context != null && context.Request.UrlReferrer != null) { urlreferer = context.Request.UrlReferrer.ToString(); } var message = new AppException { CustomMessage = string.IsNullOrWhiteSpace(customMessage) ? "AtomicLimbs.Error" : customMessage, Exception = exception, Url = url, UrlReferrer = urlreferer, }; try { if (ExceptionAction.Enqueue.Equals(action) || ExceptionAction.SendMailAndEnqueue.Equals(action)) { AzureQueue.Enqueue(message); } } catch (Exception) { //estamos en la B, error del error } try { if (ExceptionAction.SendMail.Equals(action) || ExceptionAction.SendMailAndEnqueue.Equals(action)) { var mailserver = ConfigurationManager.AppSettings["Mail.Server"]; var username = ConfigurationManager.AppSettings["Mail.Username"]; var password = ConfigurationManager.AppSettings["Mail.Password"]; var from = ConfigurationManager.AppSettings["Mail.From"]; var adminmail = ConfigurationManager.AppSettings["AdminEmails"]; var mailSender = new GeneralMailSender(mailserver, username, password); var mailMessage = new System.Net.Mail.MailMessage(from, adminmail?.Split(',')[0] ?? throw new InvalidOperationException(), message.CustomMessage, message.Url + "\n\n" + message.UrlReferrer + "\n\n" + message.Exception + "\n\n" + message.LogMessage + "\n\n" + message.Message + "\n\n" + message.StackTrace + "\n\n" + message.InnerExceptionMessage); // si el mensaje es null significa que el maker controló algunas situaciones y no hay nada para enviar y el mensaje se puede remover de la queue mailSender.Send(mailMessage); } } catch (Exception e) { //estamos en la B, error del error } try { var ai = new TelemetryClient(); ai.TrackException(exception); } catch (Exception) { //estamos en la B, error del error } }