Guest User

Untitled

a guest
Nov 17th, 2017
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. Parallel.ForEach(records, item => { // в records домены
  2.  
  3. var serv = item.ExchangeDomainName?.ToString();
  4. serv = serv.Substring(0, serv.Length - 1);
  5.  
  6. Task<bool> task1 = new Task<bool>(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 25));
  7. task1.Start();
  8. Task<bool> task2 = new Task<bool>( () => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 465));
  9. task2.Start();
  10. Task<bool> task3 = new Task<bool>(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 587));
  11. task3.Start();
  12.  
  13.  
  14. Task.WaitAll(new Task[] { task1,task2,task3});
  15.  
  16. if (task1.Result)
  17. MessageBox.Show("good" + user + "@" + serv +";25");
  18. if (task2.Result)
  19. MessageBox.Show("good" + user + "@" + serv + ";465");
  20. if (task3.Result)
  21. MessageBox.Show("good" + user + "@" + serv + ";587");
  22.  
  23. });
  24.  
  25. public bool TrySendMail(string smtpServer, string from, string password, string mailto, string caption, string message, int port, string attachFile = null)
  26. {
  27. try
  28. {
  29. MailMessage mail = new MailMessage();
  30. mail.From = new MailAddress(from);
  31. mail.To.Add(new MailAddress(mailto));
  32. mail.Subject = caption;
  33. mail.Body = message;
  34. if (!string.IsNullOrEmpty(attachFile))
  35. mail.Attachments.Add(new Attachment(attachFile));
  36. SmtpClient client = new SmtpClient();
  37. client.Host = smtpServer;
  38. client.Port = port;
  39.  
  40. client.EnableSsl = true;
  41. client.Credentials = new NetworkCredential(from.Split('@')[0], password);
  42. client.DeliveryMethod = SmtpDeliveryMethod.Network;
  43. client.Send(mail);
  44. // await client.SendMailAsync(mail);
  45.  
  46. mail.Dispose();
  47. return true;
  48. }
  49. catch
  50. {
  51. return false;
  52. }
  53.  
  54. }
  55.  
  56. var tasks = new List<Task>();
  57. foreach (var record in records)
  58. {
  59. tasks.Add(Task.Run(() =>
  60. {
  61. var serv = record.ExchangeDomainName?.ToString();
  62. serv = serv.Substring(0, serv.Length - 1);
  63.  
  64. Task<bool> task1 = Task.Run(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 25));
  65. Task<bool> task2 = Task.Run(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 465));
  66. Task<bool> task3 = Task.Run(() => TrySendMail(serv, user + "@" + serv, pass, "mail@mail.ru", "Test", "dont worry", 587));
  67.  
  68. //Start() не нужен так как используем Task.Run() он вызывает Task.Factory.StartNew
  69.  
  70. if (task1.Result) //WaitAll не нужен так как используем Result
  71. MessageBox.Show("good" + user + "@" + serv + ";25");
  72. if (task2.Result) //WaitAll не нужен так как используем Result
  73. MessageBox.Show("good" + user + "@" + serv + ";465");
  74. if (task3.Result) //WaitAll не нужен так как используем Result
  75. MessageBox.Show("good" + user + "@" + serv + ";587");
  76. }));
  77. }
  78. Task.WaitAll(tasks.ToArray());
Add Comment
Please, Sign In to add comment