Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Parallel.ForEach(records, item => { // в records домены
- var serv = item.ExchangeDomainName?.ToString();
- serv = serv.Substring(0, serv.Length - 1);
- Task<bool> task1 = new Task<bool>(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 25));
- task1.Start();
- Task<bool> task2 = new Task<bool>( () => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 465));
- task2.Start();
- Task<bool> task3 = new Task<bool>(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 587));
- task3.Start();
- Task.WaitAll(new Task[] { task1,task2,task3});
- if (task1.Result)
- MessageBox.Show("good" + user + "@" + serv +";25");
- if (task2.Result)
- MessageBox.Show("good" + user + "@" + serv + ";465");
- if (task3.Result)
- MessageBox.Show("good" + user + "@" + serv + ";587");
- });
- public bool TrySendMail(string smtpServer, string from, string password, string mailto, string caption, string message, int port, string attachFile = null)
- {
- try
- {
- MailMessage mail = new MailMessage();
- mail.From = new MailAddress(from);
- mail.To.Add(new MailAddress(mailto));
- mail.Subject = caption;
- mail.Body = message;
- if (!string.IsNullOrEmpty(attachFile))
- mail.Attachments.Add(new Attachment(attachFile));
- SmtpClient client = new SmtpClient();
- client.Host = smtpServer;
- client.Port = port;
- client.EnableSsl = true;
- client.Credentials = new NetworkCredential(from.Split('@')[0], password);
- client.DeliveryMethod = SmtpDeliveryMethod.Network;
- client.Send(mail);
- // await client.SendMailAsync(mail);
- mail.Dispose();
- return true;
- }
- catch
- {
- return false;
- }
- }
- var tasks = new List<Task>();
- foreach (var record in records)
- {
- tasks.Add(Task.Run(() =>
- {
- var serv = record.ExchangeDomainName?.ToString();
- serv = serv.Substring(0, serv.Length - 1);
- Task<bool> task1 = Task.Run(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 25));
- Task<bool> task2 = Task.Run(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 465));
- Task<bool> task3 = Task.Run(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 587));
- //Start() не нужен так как используем Task.Run() он вызывает Task.Factory.StartNew
- if (task1.Result) //WaitAll не нужен так как используем Result
- MessageBox.Show("good" + user + "@" + serv + ";25");
- if (task2.Result) //WaitAll не нужен так как используем Result
- MessageBox.Show("good" + user + "@" + serv + ";465");
- if (task3.Result) //WaitAll не нужен так как используем Result
- MessageBox.Show("good" + user + "@" + serv + ";587");
- }));
- }
- Task.WaitAll(tasks.ToArray());
Add Comment
Please, Sign In to add comment