/// <summary> /// Generates the mail message. /// </summary> /// <param name="subject">The subject.</param> /// <param name="body">The body.</param> /// <param name="isHtml">if set to <c>true</c> [is HTML].</param> /// <param name="encoding">The encoding.</param> /// <param name="toList">To list.</param> /// <param name="ccList">The cc list.</param> /// <param name="bccList">The BCC list.</param> /// <param name="attachments">The attachments.</param> /// <param name="mailPriority">The mail priority.</param> /// <returns>MailMessage.</returns> /// <exception cref="InvalidObjectException">toList</exception> public static MailMessage GenerateMailMessage(string subject, string body, bool isHtml, Encoding encoding, MailAddress[] toList, MailAddress[] ccList, MailAddress[] bccList, List<Attachment> attachments, MailPriority mailPriority = MailPriority.Normal) { toList.CheckNullObject(nameof(toList)); if (toList.Length == 0) { throw ExceptionFactory.CreateInvalidObjectException(nameof(toList)); } var mailMessage = new MailMessage(); mailMessage.Subject = mailMessage.SafeToString(subject); mailMessage.Body = mailMessage.SafeToString(body); mailMessage.BodyEncoding = encoding ?? Encoding.UTF8; mailMessage.IsBodyHtml = isHtml; foreach (MailAddress to in toList) { mailMessage.To.Add(to); } if (ccList != null && ccList.Length > 0) { foreach (MailAddress cc in ccList.Where(cc => cc != null)) { mailMessage.CC.Add(cc); } } if (bccList != null && bccList.Length > 0) { foreach (var bcc in bccList.Where(bcc => bcc != null)) { mailMessage.Bcc.Add(bcc); } } if (attachments != null && attachments.Count > 0) { foreach (var attachment in attachments) { mailMessage.Attachments.Add(attachment); } } mailMessage.Priority = mailPriority; return mailMessage; }