Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
        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();
        }