Пока что удалось :
- Создать проект C # Azure WebJob через Visual Studio и опубликовать его в веб-приложении, которое:
- Подключаетсяв базу данных SQL Azure и выполняет SQL-запрос (через SqlDataReader)
- Добавляет результаты SqlDataReader в тело письма
- Отправляет электронное письмо
В дополнение к вышеупомянутому, где-томежду пунктами 3 и 4 выше, мне нужно :
Создание файла .CSV Заполнение файла .CSV из SqlDataReader Отправка файла .CSV по электронной почте в виде вложения
Набор результатов из SqlDataReaderдля заполнения CSV выглядит следующим образом:
asdasd@gmail.com, 11/11 / 2018
asdasdasd@gmail.com, 11/19/2018
asdasdasasdas@live.co.uk, 11 /19/2018
asdasddsa@hotmail.com, 11/19/2018
asdasd@hotmail.com, 11/19/2018
asdasddsa@hotmail.com, 11/19/2018
asdasasd @gmail.com, 11/18/2018
Ниже приводится то, что я имею до сих пор:
public static void Main(string[] args)
{
SmtpClient smtp = new SmtpClient();
int SMTP_PORT = 587;
Int32.TryParse(ConfigurationManager.AppSettings["SMTP_PORT"], out SMTP_PORT);
smtp.Port = SMTP_PORT;
smtp.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["SMTP_USERNAME"], ConfigurationManager.AppSettings["SMTP_PASSWORD"]);
smtp.Host = ConfigurationManager.AppSettings["SMTP_HOST"];
string mailFrom = ConfigurationManager.AppSettings["SMTP_MAIL_FROM"];
string mailSubject = ConfigurationManager.AppSettings["SMTP_MAIL_SUBJECT"];
using (SqlConnection connection = new SqlConnection(ConfigurationManager.AppSettings["AzureDBConnString"]))
{
connection.Open();
var queryString = @"SELECT * FROM MyTable WHERE Status = 1";
using (SqlCommand command = new SqlCommand(queryString, connection))
{
command.CommandTimeout = 120;
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read()) // loop each user and send email
{
bool emailSentSuccess = true;
using (MailMessage mail = new MailMessage())
{
try
{
mail.From = new MailAddress(mailFrom);
mail.To.Add(new MailAddress(reader["EmailAddress"].ToString()));
mail.IsBodyHtml = true;
mail.Subject = mailSubject;
mail.Body = reader["EmailBody"].ToString();
smtp.Send(mail);
}
catch (Exception ex)
{
emailSentSuccess = false;
}
}
}
}
}
}
}
Вопрос : Как я могу набрать очки 5, 6, 7