public ActionResult GetSMTPInfo() { // REMOVE THIS SECTION ONCE THE EMAIL NOTIFICATION HAS BEEN FULLY TESTED // Testing SendEmail //GlobalVars.EMAIL email = new GlobalVars.EMAIL(); //email.Body = "This is a test message"; //email.SenderEmailAddress = "*****@*****.**"; //email.RecipientsEmailAddress = "*****@*****.**"; //email.Subject = "Test Message sent from SSS Microservices"; //GlobalVars.ResultGeneric resultGeneric = new GlobalVars.ResultGeneric(); //resultGeneric = SQLFunctionsSMTP.SendEmail(email); // ------------------------------------------------------- var watch = System.Diagnostics.Stopwatch.StartNew(); GlobalVars.ResultSMTP resultSMTP = new GlobalVars.ResultSMTP(); try { logger.Info("GetSMTPInfo API Request."); resultSMTP = SQLFunctionsSMTP.GetSMTPInfo(); switch (resultSMTP.ReturnCode) { case 0: logger.Info("GetSMTPInfo API Request was executed Successfully."); Response.StatusCode = (int)HttpStatusCode.OK; break; case -2: Response.StatusCode = (int)HttpStatusCode.InternalServerError; logger.Fatal("GetSMTPInfo API Request ends with a Fatal Error."); logger.Debug("Returned value:" + JsonConvert.SerializeObject(resultSMTP, Formatting.Indented)); Response.StatusCode = (int)HttpStatusCode.InternalServerError; break; } } catch (Exception e) { logger.Fatal("GetSMTPInfo API Request ends with a Fatal Error."); resultSMTP.ReturnCode = -2; resultSMTP.Message = e.Message; var baseException = e.GetBaseException(); resultSMTP.Exception = baseException.ToString(); logger.Fatal("Returned value:" + JsonConvert.SerializeObject(resultSMTP, Formatting.Indented)); Response.StatusCode = (int)HttpStatusCode.InternalServerError; } Response.ContentType = "application/json"; watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; elapsedMs = elapsedMs / 1000; resultSMTP.ElapsedTime = elapsedMs.ToString(); logger.Debug("Returned value:" + JsonConvert.SerializeObject(resultSMTP, Formatting.Indented)); //var messaje = JsonConvert.SerializeObject(resultCustomers, Formatting.Indented); resultSMTP.HttpStatusCode = Response.StatusCode.ToString(); var messaje = JsonConvert.SerializeObject(resultSMTP, Formatting.Indented); logger.Info("Leaving GetSMTPInfo API."); //return Json(messaje); return(Content(messaje)); }
/// <summary> /// Get SMTP Server Information /// </summary> /// <returns></returns> static public GlobalVars.ResultSMTP GetSMTPInfo() { GlobalVars.SMTP smtp = new GlobalVars.SMTP(); GlobalVars.ResultSMTP resultSMTP = new GlobalVars.ResultSMTP() { ReturnCode = 0, Message = "", ReturnValue = smtp, RecordsCount = 0, HttpStatusCode = "" }; try { logger.Trace("Entering into GetSMTPInfo Method ..."); using (ScanningDBContext DB = new ScanningDBContext()) { var results = DB.Smtp.FirstOrDefault(); if (results != null) { resultSMTP.RecordsCount = 1; smtp.HostName = (results.HostName ?? "").Trim(); smtp.PortNumber = results.PortNumber; smtp.SenderEmailAddress = (results.SenderEmailAddress ?? "").Trim(); smtp.EnableSSLFlag = Convert.ToBoolean(results.EnableSslflag); smtp.SenderName = (results.SenderName ?? "").Trim(); smtp.UserName = (results.UserName ?? "").Trim(); smtp.Password = (results.Password ?? "").Trim(); } else { //There is no record in the database } } resultSMTP.ReturnValue = smtp; resultSMTP.Message = "GetSMTPInfo transaction completed successfully. Number of records found: " + resultSMTP.RecordsCount; logger.Debug(resultSMTP.Message); } catch (Exception e) { logger.Error("Error:" + e.Message + "\n" + "Exception: " + e.InnerException); resultSMTP.ReturnCode = -2; resultSMTP.Message = e.Message; var baseException = e.GetBaseException(); resultSMTP.Exception = baseException.ToString(); } logger.Trace("Leaving GetSMTPInfo Method ..."); return(resultSMTP); }
/// <summary> /// Send Email /// </summary> /// <returns> Return 0 if the email was sent successfully</returns> static public GlobalVars.ResultGeneric SendEmail(GlobalVars.EMAIL email) { GlobalVars.ResultGeneric result = new GlobalVars.ResultGeneric() { ReturnCode = 0, Message = "", RecordsCount = 0, HttpStatusCode = "" }; try { logger.Trace("Entering into SendEmail Method ..."); // Get SMTP Server Information GlobalVars.ResultSMTP resultSMTP = new GlobalVars.ResultSMTP(); resultSMTP = SQLFunctionsSMTP.GetSMTPInfo(); GlobalVars.SMTP smpt = new GlobalVars.SMTP(); smpt = resultSMTP.ReturnValue; MailMessage mail = new MailMessage(); SmtpClient client = new SmtpClient(); mail.From = new MailAddress(smpt.SenderEmailAddress, smpt.SenderName); //mail.To.Add(new MailAddress(email.RecipientsEmailAddress)); foreach (var address in email.RecipientsEmailAddress.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries)) { mail.To.Add(address); } mail.Subject = email.Subject; mail.Body = email.Body; mail.IsBodyHtml = true; if (email.HasAttachment) { mail.Attachments.Add(new Attachment(new MemoryStream(email.attachment), "Report.pdf")); } client.Port = smpt.PortNumber; client.Host = smpt.HostName; //client.DeliveryMethod = SmtpDeliveryMethod.Network; if (resultSMTP.ReturnValue.EnableSSLFlag) { client.UseDefaultCredentials = false; client.EnableSsl = true; client.Credentials = new System.Net.NetworkCredential(smpt.UserName, smpt.Password); } else { client.EnableSsl = false; client.UseDefaultCredentials = true; } logger.Trace(" Sender: " + smpt.SenderName); logger.Trace(" Recipients: " + email.RecipientsEmailAddress); logger.Trace(" Subject: " + email.Subject); client.Send(mail); logger.Trace("Eamil was sent sucessfully."); } catch (Exception e) { logger.Error("Error:" + e.Message + "\n" + "Exception: " + e.InnerException); result.ReturnCode = -2; result.Message = e.Message; var baseException = e.GetBaseException(); result.Exception = baseException.ToString(); } logger.Trace("Leaving SendEmail Method ..."); return(result); }