public SmimeMailMessage GenerateMail(List <IMailAddress> toAddresses, List <SmimeMailAddress> ccAddresses, List <SmimeMailAddress> bccAddresses, List <string> attachmentsList, string subject, string body) { if (toAddresses == null) { throw new ArgumentNullException("toAddresses"); } var message = new SmimeMailMessage(); to = toAddresses; cc = ccAddresses; bcc = bccAddresses; message.From = From; to.ForEach(a => message.To.Add((SmimeMailAddress)a)); if (cc != null) { cc.ForEach(a => message.CC.Add(a)); } if (bcc != null) { bcc.ForEach(a => message.Bcc.Add(a)); } if (attachmentsList != null && attachmentsList.Count > 0) { attachmentsList.ForEach(a => message.Attachments.Add(new MimeAttachment(a))); } message.Subject = subject; message.Body = body; message.IsSigned = _sign; message.IsEncrypted = _encrypt; return(message); }
public void SendSecureMail(List <SmimeMailAddress> recieverMailAddresses, string messageSubject, string messageBody, X509Certificate2 signingCertificate2, List <string> attachmentAddress = null, X509Certificate2 encryptionCertificate2 = null) { if (signingCertificate2 == null) { throw new ArgumentNullException("signingCertificate2"); } var message = new SmimeMailMessage(); // Look up your signing cert by serial number in your cert store if (encryptionCertificate2 == null && _encrypt) { message.From = new SmimeMailAddress(_senderEmailAddresss, _senderDisplayName, signingCertificate2, signingCertificate2); } else if (_encrypt && _sign) { message.From = new SmimeMailAddress(_senderEmailAddresss, _senderDisplayName, signingCertificate2, encryptionCertificate2); } else { message.From = new SmimeMailAddress(_senderEmailAddresss, _senderDisplayName, signingCertificate2); } recieverMailAddresses.ForEach(a => message.To.Add(a)); if (attachmentAddress != null && attachmentAddress.Count > 0) { attachmentAddress.ForEach(a => message.Attachments.Add(new MimeAttachment(a))); } message.Priority = _messagePriority; message.Subject = messageSubject; message.Body = messageBody; message.IsBodyHtml = _useHtml; message.IsSigned = _sign; message.IsEncrypted = _encrypt; SendMessage(message, _onSendCallBack); }