Please read the 2 following articles:
Here's the code that shows how to sign and encrypt email containing attachment:
MailBuilder b = new MailBuilder()
b.From.Add(new MailBox("alice@example.com", "Alice"))
b.To.Add(new MailBox("bob@example.com", "Bob"))
b.Subject = "Test"
b.Html = "This is <strong>signed and encrypted</strong> message."
b.AddAttachment(@"c:\report.xls")
b.SignWith(new X509Certificate2("AliceCertWithPrivateKey.pfx", ""))
b.EncryptWith(new X509Certificate2("AlicePublicCertificate.pfx", ""))
b.EncryptWith(new X509Certificate2("BobPublicCertificate.pfx", ""))
IMail email = b.Create()
Remember to encrypt your emails with both sender’s and receiver’s certificates.
This way both parties are able to decrypt such emails.
Sending encrypted and signed email is also easy:
using (Smtp client = new Smtp())
{
client.Connect("smtp.example.com")
client.UseBestLogin("user", "password")
client.SendMessage(email)
client.Close()
}