コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: MassMailer.cs プロジェクト: 5l1v3r1/MassMailer-2
        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);
            }
        }
コード例 #3
0
        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"));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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;
            }
        }
コード例 #6
0
        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);



        }