internal static void SendingEmail(string connString, String code, String provider) { Boolean success = false; Utilities.Utilities.Log(message: "Sending emails Start ... ", isWriteLine: true, addTime: true); List <EmailSettingInfo> emailSettings = DataOperation.GetEmailSetting(connString, code); foreach (EmailSettingInfo emailSetting in emailSettings) { Utilities.Utilities.Log(message: $"[{emailSetting.Code}].[{emailSetting.Name}] ... ", isWriteLine: false, addTime: true); String emailBodyOrg = System.IO.File.ReadAllText(emailSetting.FileFullName); List <EmailInfo> emails = DataOperation.GetEmails(connString, emailSetting.Code); Int32 total = (Int32)(emails.Count * emailSetting.SendPercentage / 100); Utilities.Utilities.Log(message: $"[{total}/{emails.Count}]", isWriteLine: true); Int32 count = 0; foreach (EmailInfo email in emails.Take(total)) { success = false; //Utilities.Utilities.Log(message: $"Sending [{count}].[{email.CompanyName}] - [{email.Email}] ... ", isWriteLine: false, addTime: true); Utilities.Utilities.Log(message: $"Sending [{count + 1}].[{email.Email}] ... ", isWriteLine: false, addTime: true); List <MailAddress> mailList = getMailAddressList(email.Email); if (mailList.Count > 0) { #if DEBUG //mailList = new List<MailAddress>() { // new MailAddress("*****@*****.**"), // new MailAddress("*****@*****.**"), // new MailAddress("*****@*****.**") //}; #endif switch (provider) { case "AIM": success = sendingEmailAIM(emailSetting, email, emailBodyOrg, mailList); break; } if (success) { ++count; } } else { email.Comments = "Email list is invalid."; } success &= DataOperation.UpdateEmail(connString, email); Utilities.Utilities.Log(message: success ? $"[Sent]" : "[XXXX]", isWriteLine: true, addTime: false, isError: !success); //if (count > total) // break; } Utilities.Utilities.Log(message: $"[{count}] sent.", isWriteLine: true, addTime: true); } }
internal static void SendingEmail(string connString, String code) { Boolean success = false; Utilities.Utilities.Log(message: "Sending emails Start ... ", isWriteLine: true, addTime: true); List <EmailSettingInfo> emailSettings = DataOperation.GetEmailSetting(connString, code); foreach (EmailSettingInfo emailSetting in emailSettings) { Utilities.Utilities.Log(message: $"[{emailSetting.Code}].[{emailSetting.Name}] ... ", isWriteLine: false, addTime: true); String emailBodyOrg = System.IO.File.ReadAllText(emailSetting.FileFullName); List <EmailInfo> emails = DataOperation.GetEmails(connString, code); Int32 total = (Int32)(emails.Count * emailSetting.SendPercentage / 100); Utilities.Utilities.Log(message: $"[{total}/{emails.Count}]", isWriteLine: true); Int32 count = 1; foreach (EmailInfo email in emails.Take(total)) { //email.Email = "*****@*****.**"; MailMessage mailMessage = getMailMessage(emailSetting); SmtpClient smtpClient = getsmtpClient(); success = false; Utilities.Utilities.Log(message: $"Sending [{count}].[{email.CompanyName}] - [{email.Email}] ... ", isWriteLine: false, addTime: true); if (getMailMessageTo(ref mailMessage, email.Email)) { setBody(email, emailBodyOrg, ref mailMessage); try { smtpClient.Send(mailMessage); ++count; success = true; } catch (Exception ex) { email.Comments = ex.Message; } } else { email.Comments = "Email is invalid."; } success &= DataOperation.UpdateEmail(connString, email); Utilities.Utilities.Log(message: success ? $"[Sent]" : "[XXXX]", isWriteLine: true, addTime: false); if (count > total) { break; } smtpClient.Dispose(); mailMessage.Dispose(); //System.Threading.Thread.Sleep(5000); } } }
internal static void PollingEmail(string connString, String code) { Boolean success = false; Utilities.Utilities.Log(message: "Sending emails Start ... ", isWriteLine: true, addTime: true); EmailSettingInfo emailSetting = DataOperation.GetEmailSetting(connString, code); Utilities.Utilities.Log(message: $"[{emailSetting.Code}] [{emailSetting.Name}] ... ", isWriteLine: false, addTime: true); MailMessage mailMessage = getMailMessage(emailSetting); SmtpClient smtpClient = getsmtpClient(); String emailBodyOrg = System.IO.File.ReadAllText(emailSetting.FileFullName); List <EmailInfo> emails = DataOperation.GetEmails(connString, code); Int32 count = (Int32)(emails.Count * emailSetting.SendPercentage / 100); Utilities.Utilities.Log(message: $"[{count}/{emails.Count}]", isWriteLine: true); foreach (EmailInfo email in emails.Take(count)) { //email.Email = "*****@*****.**"; success = false; Utilities.Utilities.Log(message: $"Sending [{email.Email}] ... ", isWriteLine: false, addTime: true); email.Code = code; email.CompanyName = System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(email.CompanyName.ToLower()); String emailBody = emailBodyOrg.Replace("{Company}", email.CompanyName).Replace("\r\n", "<br />"); string[] toEmails = email.Email.Split(';'); mailMessage.To.Clear(); foreach (String toEmail in toEmails) { try { mailMessage.To.Add(toEmail); } catch (Exception) { } } System.Net.Mail.AlternateView plainView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(System.Text.RegularExpressions.Regex.Replace(emailBody, @"<(.|\n)*?>", string.Empty), null, "text/plain"); System.Net.Mail.AlternateView htmlView = System.Net.Mail.AlternateView.CreateAlternateViewFromString(emailBody, null, "text/html"); mailMessage.AlternateViews.Add(plainView); mailMessage.AlternateViews.Add(htmlView); try { smtpClient.Send(mailMessage); success = true; } catch (Exception ex) { email.Comments = ex.Message; } success = DataOperation.UpdateEmail(connString, email); Utilities.Utilities.Log(message: success ? $"[Done]" : "[X]", isWriteLine: true, addTime: false); } smtpClient.Dispose(); mailMessage.Dispose(); }