public void Valid_send_sign_DomainKey_then_DKIM(string headers) { var msg = new MailMessage(); msg.To.Add(new MailAddress(_to, "Jim Bob")); msg.From = new MailAddress(_from, "Joe Bloggs"); msg.Subject = "Test DomainKeys & DKIM Message"; msg.Body = "A simple message"; var domainKeySigner = new DomainKeySigner(PrivateKeySigner.Create(_privateKey), _domain, _selector, GetHeaders(headers)); msg.DomainKeySign(domainKeySigner); var dkimSigner = new DkimSigner(PrivateKeySigner.Create(_privateKey), _domain, _selector, GetHeaders(headers)); msg.DkimSign(dkimSigner); var smtp = new SmtpClient(); smtp.Send(msg); }
private static void GetDkimSigners() { try { var files = new DirectoryInfo(Config.PrivateKeyFolder).GetFiles("*.pem"); if (files.Length == 0) { throw new Exception("No private key files (*.pem) found"); } foreach (var file in files) { var key = file.Name.Replace(".pem", ""); var selector = key.Split('@')[0]; var domain = key.Split('@')[1]; var pKeySig = PrivateKeySigner.LoadFromFile(file.FullName); var dkimSig = new DkimSigner(pKeySig, domain, selector, new[] { "From", "To", "Subject" }); var domainKeySig = new DomainKeySigner(pKeySig, domain, selector, new[] { "From", "To", "Subject" }); dkimSig.HeaderCanonicalization = DkimCanonicalizationAlgorithm.RELAXED; dkimSig.BodyCanonicalization = DkimCanonicalizationAlgorithm.RELAXED; _dkimSignerCache.TryAdd(key, dkimSig); _domailKeySignerCache.TryAdd(key, domainKeySig); } } catch (Exception ex) { Logger.Log.Warn("Unable to turn on DKIM: {0}", ex.Message); } }
public void TestInitialize() { Message = new System.Net.Mail.MailMessage(); Message.To.Add(new MailAddress("*****@*****.**", "Jim Bob")); Message.From = new MailAddress("*****@*****.**", "Joe Bloggs"); Message.Subject = "Test DKIM Message"; Message.Body = "A simple message"; Smtp = new SmtpClient(); Smtp.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; Smtp.PickupDirectoryLocation = Path.GetTempPath(); DkimSigner = new DkimSigner(PrivateKeySigner.Create(PrivateKey), "acme.com", "dkim", GetHeaders("From,To,Subject")); DomainKeySigner = new DomainKeySigner(PrivateKeySigner.Create(PrivateKey), "acme.com", "dkim", GetHeaders("From,To,Subject")); }
private static bool SendEmailInternal(string to, string subject, string body, string replyToName, string replyToEmail) { try { if (Debugger.IsAttached || Configuration.GetSMTPUserName().IsNullOrEmpty()) { HttpContext.Current.Response.Write(subject + " " + body); return(false); } var privateKey = PrivateKeySigner.Create(Configuration.GetDomainKey()); using (var client = new SmtpClient()) { var message = new MailMessage(); message.To.Add(new MailAddress(to)); if (!replyToEmail.IsNullOrEmpty()) { ActionExtensions.TryAction(() => message.ReplyToList.Add(new MailAddress(replyToEmail, replyToName))); } message.From = new MailAddress("*****@*****.**", "rssheap"); message.Subject = subject; message.Body = body; message.IsBodyHtml = true; var domainKeySigner = new DomainKeySigner(privateKey, "rssheap.com", "abc", new string[] { "From", "To", "Subject" }); message.DomainKeySign(domainKeySigner); var dkimSigner = new DkimSigner(privateKey, "rssheap.com", "abc", new string[] { "From", "To", "Subject" }); message.DkimSign(dkimSigner); client.Host = "192.99.232.179"; client.Port = 25; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(Configuration.GetSMTPUserName(), Configuration.GetSMTPPassword()); client.EnableSsl = false; client.Send(message); } } catch { return(false); } return(true); }
public static void SendEmailWithDKIP(string subject, string body) { if (Configuration.GetSMTPUserName().IsNullOrEmpty()) { return; } var privateKey = PrivateKeySigner.Create(Configuration.GetDomainKey()); var msg = new MailMessage(); msg.To.Add(new MailAddress("*****@*****.**")); msg.From = new MailAddress("*****@*****.**", "rssheap"); msg.Subject = subject; msg.Body = body; var domainKeySigner = new DomainKeySigner(privateKey, "rssheap.com", "abc", new string[] { "From", "To", "Subject" }); msg.DomainKeySign(domainKeySigner); var dkimSigner = new DkimSigner(privateKey, "rssheap.com", "abc", new string[] { "From", "To", "Subject" }); msg.DkimSign(dkimSigner); var client = new SmtpClient { Host = "192.99.232.179", Port = 25, UseDefaultCredentials = false, Credentials = new NetworkCredential(Configuration.GetSMTPUserName(), Configuration.GetSMTPPassword()), EnableSsl = false }; try { client.Send(msg); } catch { string bp = string.Empty; } }
public void Valid_send_sign_DomainKey(string headers) { var msg = new MailMessage(); msg.To.Add(new MailAddress(_to, "Jim Bob")); msg.From = new MailAddress(_from, "Joe Bloggs"); msg.Subject = "Test DomainKeys Message"; msg.Body = "A simple message"; var domainKeySigner = new DomainKeySigner(PrivateKeySigner.Create(_privateKey), _domain, _selector, GetHeaders(headers)); msg.DomainKeySign(domainKeySigner); var smtp = new SmtpClient(); smtp.Send(msg); }