I want to send email to multiple addresses (more than 1000 users) and use the following code when I use it to send email to less than 100 users who work, but for more than 100 users this does not work and throws failed recipients smtpfailedrecipientsexception! What for? How can I send an email to valid addresses and receive a message about this error?
public void SendMailMessage (string[] to,string message,string subject) { MailMessage mMailMessage = new MailMessage (); int lenght = to.GetLength(0); if (lenght > 1) { foreach (string email in to) { mMailMessage.Bcc.Add ( email ); } } else { mMailMessage.To.Add ( to[0] ); } mMailMessage.From = new MailAddress (" no-replay@mycompany.net "); SmtpClient mSmtpClient = new SmtpClient (); mMailMessage.Body = message; mMailMessage.IsBodyHtml = true; mMailMessage.Priority = MailPriority.Normal; mMailMessage.Subject = subject; mSmtpClient.EnableSsl = true; ServicePointManager.ServerCertificateValidationCallback = delegate(object s,X509Certificate certificate,X509Chain chain, SslPolicyErrors sslPolicyErrors) {return true;}; try { mSmtpClient.Send (mMailMessage); } catch (SmtpFailedRecipientsException ex){ for (int i = 0; i < ex.InnerExceptions.Length; i++) { SmtpStatusCode status = ex.InnerExceptions[i].StatusCode; if (status == SmtpStatusCode.MailboxBusy || status == SmtpStatusCode.MailboxUnavailable) { Logger.Debug("Delivery failed - retrying in 5 seconds."); System.Threading.Thread.Sleep(5000);
source share