コード例 #1
0
 public void SendParallel(Mail Message, Adresser From, IEnumerable <Adressee> To)
 {
     foreach (var adressee in To)
     {
         ThreadPool.QueueUserWorkItem(_ => Send(Message, From, adressee));
     }
 }
コード例 #2
0
 public void Send(Mail Message, Adresser From, IEnumerable <Adressee> To)
 {
     foreach (var adressee in To)
     {
         Send(Message, From, adressee);
     }
 }
コード例 #3
0
        /*public async Task SendAsync(Mail Message, Adresser From, IEnumerable<Adressee> To) //отправка сразу нескольким параллельной обработкой
         * {
         *  await Task.WhenAll(To.Select(to => SendAsync(Message, From, to))).ConfigureAwait(false);
         * }*/

        public async Task SendAsync(Mail Message, Adresser From, IEnumerable <Adressee> To, CancellationToken Cancel = default) //2 вариат рассылки последовательной обработкой
        {
            foreach (var recipient in To)
            {
                Cancel.ThrowIfCancellationRequested();
                await SendAsync(Message, From, recipient).ConfigureAwait(false);
            }
        }
コード例 #4
0
        public void Edit(Adresser adresser)
        {
            var current_main_window = (MainWindow)Application.Current.MainWindow; //создаем окно внутри сервеса
            var editor = new AdresserEditor(adresser, current_main_window);

            editor.WindowStartupLocation = WindowStartupLocation.CenterOwner;
            editor.Owner = current_main_window;

            if (editor.ShowDialog() != true)
            {
                return;                              //если пользователь выбрал не кнопку ок то выходим, в противном случае возвращаем данные обратно
            }
            adresser.Name    = editor.Name;
            adresser.Address = editor.AdressValue;
        }
コード例 #5
0
        public void Send(Mail Mail, Adresser From, Adressee To)
        {
            using (var message = new MailMessage(new MailAddress(From.Address, From.Name), new MailAddress(To.Address, To.Name)))
            {
                message.Subject = Mail.Subject;
                message.Body    = Mail.Body;

                var login = new NetworkCredential(_Server.Login, _Server.Password);
                using (var client = new SmtpClient(_Server.Address, _Server.Port)
                {
                    EnableSsl = _Server.UseSSL, Credentials = login
                })
                    client.Send(message);
            }
        }
コード例 #6
0
        public async Task SendAsync(Mail Mail, Adresser From, Adressee To) //отправка одного сообщения асинхронно
        {
            using (var message = new MailMessage(new MailAddress(From.Address, From.Name), new MailAddress(To.Address, To.Name)))
            {
                message.Subject = Mail.Subject;
                message.Body    = Mail.Body;

                var login = new NetworkCredential(_Server.Login, _Server.Password);
                using (var client = new SmtpClient(_Server.Address, _Server.Port)
                {
                    EnableSsl = _Server.UseSSL, Credentials = login
                })
                    //client.Send(message);
                    await client.SendMailAsync(message).ConfigureAwait(false);
            }
        }
コード例 #7
0
 public void Send(Mail Mail, Adresser From, Adressee To)
 {
     Debug.WriteLine("Отправка почты от {0} к {1} через {2}:{3}[{4}]\r\n{5}:{6}",
                     From.Address, To.Address, _Server.Address, _Server.Port, _Server.UseSSL ? "SSL" : "no SSL",
                     Mail.Subject, Mail.Body);
 }