private int SendMail(DKIM.SmtpClient smtpClient, string from, string to, string cc, string subject, string listId, string body, bool isHtml, List <Attach> attachs) { using (var message = new MailMessage()) { message.BodyEncoding = Encoding.UTF8; message.IsBodyHtml = isHtml; message.Subject = subject; message.Body = body; message.Sender = new MailAddress(Config.ReturnPath); message.From = new MailAddress(from); message.To.Add(to); if (!String.IsNullOrEmpty(listId)) { message.Headers.Add("List-Id", listId); } //Send copy if needed if (!String.IsNullOrEmpty(cc)) { message.CC.Add(cc); } //Attach files if exists if (attachs.Count != 0) { foreach (var attach in attachs) { message.Attachments.Add(new Attachment(new MemoryStream(attach.Data), attach.Name)); } } //Sign message if available DkimSigner dkimSig; DomainKeySigner domainKeySig; _dkimSignerCache.TryGetValue(message.From.Address, out dkimSig); _domailKeySignerCache.TryGetValue(message.From.Address, out domainKeySig); smtpClient.DkimSigner = dkimSig; smtpClient.DomainKeysSigner = domainKeySig; if (Config.CoreTest == 0) { smtpClient.Send(message); } else if (Config.CoreTest > 0) { Thread.Sleep(Config.CoreTest); } } return((int)SmtpStatusCode.Ok); }