public async Task GetRDSConnectionandSendMail() { #region value fetch from appsetting.sample.json //var a = Directory.GetCurrentDirectory(); //var builder = new ConfigurationBuilder() // .SetBasePath(Directory.GetCurrentDirectory()) // .AddJsonFile("appsettings.sample.json"); //Configuration = builder.Build(); //EmailSettingsAC emailSettings = new EmailSettingsAC //{ // From = Configuration["EmailSettings:From"], // SMTPHost = Configuration["EmailSettings:SMTPHost"], // SMTPPassword = Configuration["EmailSettings:SMTPPassword"], // SMTPPortNo = Configuration["EmailSettings:SMTPPortNo"], // SMTPUserName = Configuration["EmailSettings:SMTPUserName"], // Subject = Configuration["EmailSettings:Subject"] //}; #endregion #region Fetch Data from Environment variable var connectionString = Environment.GetEnvironmentVariable("webaccountingDB"); //Add value to EmailsettingsAc model EmailSettingsAC emailSettings = new EmailSettingsAC { From = Environment.GetEnvironmentVariable("Email_From"), SMTPHost = Environment.GetEnvironmentVariable("Email_SmtpHost"), SMTPPassword = Environment.GetEnvironmentVariable("Email_SmtpPassword"), SMTPPortNo = Environment.GetEnvironmentVariable("Email_SmtpPort"), SMTPUserName = Environment.GetEnvironmentVariable("Email_UserName"), Subject = Environment.GetEnvironmentVariable("Email_subject") }; #endregion #region Sql query and corresponding task using (var conn = new MySqlConnection(connectionString)) { conn.Open(); List <string> emailListOfUsers = new List <string>(); string sqlQuery = string.Format("SELECT Email FROM master_client.accountant;"); var operatorEmail = new MySqlCommand(sqlQuery, conn); var promise = await operatorEmail.ExecuteReaderAsync(); while (promise.Read()) { for (int i = 0; i < promise.FieldCount; i++) { emailListOfUsers.Add(promise[i].ToString()); } } conn.Close(); MailOperator mailoperator = new MailOperator(); mailoperator.sendMail(emailSettings, emailListOfUsers); } #endregion }
public void sendMail(EmailSettingsAC emailsettingsAc, List <string> operatorlist) { try { #region variables //From Address string FromAddress = emailsettingsAc.From; //To Address List <string> ToAddress = new List <string>() { "*****@*****.**", "*****@*****.**", "*****@*****.**" }; string Subject = emailsettingsAc.Subject; string BodyContent = "Test"; //Smtp Server string SmtpServer = emailsettingsAc.SMTPHost; //Smtp Port Number int SmtpPortNumber = Convert.ToInt32(emailsettingsAc.SMTPPortNo); #endregion #region Mail Template var mimeMessage = new MimeMessage(); mimeMessage.From.Add(new MailboxAddress(FromAddress)); foreach (var emailAddress in ToAddress) { mimeMessage.To.Add(new MailboxAddress(emailAddress)); } mimeMessage.Subject = Subject; mimeMessage.Body = new TextPart("plain") { Text = BodyContent }; #endregion #region Http client authentication and send mail function using (var client = new SmtpClient()) { client.Connect(SmtpServer, SmtpPortNumber, false); // Note: only needed if the SMTP server requires authentication // Error 5.5.1 Authentication client.Authenticate(emailsettingsAc.SMTPUserName, emailsettingsAc.SMTPPassword); client.Send(mimeMessage); Console.WriteLine("The mail has been sent successfully"); client.Disconnect(true); } #endregion } catch (Exception ex) { throw ex; } }