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
        }
Exemple #2
0
        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;
            }
        }