public static SendingDomainPolicy Parse(string input)
        {
            SendingDomainPolicy policy  = new SendingDomainPolicy();
            MatchCollection     matches = Regex.Matches(input, @"[a-zA-Z]+=[^;]+(?=(;|\Z))");

            foreach (Match m in matches)
            {
                string tag   = m.Value.Substring(0, m.Value.IndexOf('='));
                string value = m.Value.Substring(m.Value.IndexOf('=') + 1);
                if (tag.Equals("n"))
                {
                    policy._n = value;
                }
                else if (tag.Equals("r"))
                {
                    policy._r = Parser.ParseAddress(value);
                }
                else if (tag.Equals("o"))
                {
                    if (value.Equals("~"))
                    {
                        policy._o = OutboundSigningPolicy.Some;
                    }
                    else if (value.Equals("-"))
                    {
                        policy._o = OutboundSigningPolicy.All;
                    }
                    else
                    {
                        policy._o = OutboundSigningPolicy.OtherOrNoPolicy;
                    }
                }
            }
            return(policy);
        }
 public static SendingDomainPolicy Parse(string input)
 {
     SendingDomainPolicy policy = new SendingDomainPolicy();
     MatchCollection matches = Regex.Matches(input, @"[a-zA-Z]+=[^;]+(?=(;|\Z))");
     foreach (Match m in matches)
     {
         string tag = m.Value.Substring(0, m.Value.IndexOf('='));
         string value = m.Value.Substring(m.Value.IndexOf('=') + 1);
         if (tag.Equals("n")) policy._n = value;
         else if (tag.Equals("r")) policy._r = Parser.ParseAddress(value);
         else if (tag.Equals("o"))
         {
             if (value.Equals("~")) policy._o = OutboundSigningPolicy.Some;
             else if (value.Equals("-")) policy._o = OutboundSigningPolicy.All;
             else policy._o = OutboundSigningPolicy.OtherOrNoPolicy;
         }
     }
     return policy;
 }
 public SendingDomainPolicy GetSendingDomainPolicy()
 {
     byte[] data = Validator.GetTxtRecords("._domainkey." + this.Domain);
     return(SendingDomainPolicy.Parse(Encoding.ASCII.GetString(data, 0, data.Length)));
 }