Beispiel #1
0
        public void SendFeedByEmail(String senderEmail, String senderPassword, Dictionary <String, Uri> feed, List <String> recepients)
        {
            var          fromAddress  = new MailAddress(senderEmail, "Rss feed delivery");
            MailSettings settings     = MailSettings.GetSettingsByDomain(senderEmail.Split('@')[1]);
            string       fromPassword = senderPassword;
            string       subject      = "Rss feed";
            string       body         = String.Empty;

            foreach (var news in feed)
            {
                body += news.Key + ": " + news.Value.ToString() + '\n';
            }

            Parallel.ForEach(recepients, (recepient) =>
            {
                try
                {
                    var smtp = new SmtpClient
                    {
                        Host                  = settings.Host,
                        Port                  = settings.Port,
                        EnableSsl             = true,
                        DeliveryMethod        = SmtpDeliveryMethod.Network,
                        UseDefaultCredentials = false,
                        Credentials           = new NetworkCredential(fromAddress.Address, fromPassword),
                        Timeout               = 20000
                    };
                    using (var message = new MailMessage(fromAddress, new MailAddress(recepient, ""))
                    {
                        Subject = subject, Body = body
                    })
                    {
                        smtp.Send(message);
                    }
                }
                catch (Exception ex)
                {
                }
            });
        }