public static bool UpdateSpf(this ServerDns dns, string domain) { var utcNow = DateTime.UtcNow; var dnsLookup = new DnsLookup(); if (dns.SpfDateChecked.HasValue && dns.SpfDateChecked.Value.AddSeconds(dns.SpfTtl) >= utcNow) { return(false); } var txtRecords = dnsLookup .GetDomainTxtRecords(domain); var spfRecord = txtRecords.FirstOrDefault( txt => txt.TextData.Trim('\"') .Equals(dns.Spf, StringComparison.InvariantCultureIgnoreCase)); dns.SpfVerified = spfRecord != null; dns.SpfTtl = spfRecord != null ? spfRecord.TimeToLive : Defines.ServerDnsDefaultTtl; dns.SpfDateChecked = utcNow; return(true); }
public static bool UpdateDkim(this ServerDns dns, string domain) { var utcNow = DateTime.UtcNow; var dnsLookup = new DnsLookup(); if (dns.DkimDateChecked.HasValue && dns.DkimDateChecked.Value.AddSeconds(dns.DkimTtl) >= utcNow) { return(false); } var dkimRecordName = string.Format("{0}._domainkey.{1}", dns.DkimSelector, domain); var dkimRecord = dnsLookup .GetDomainTxtRecords(dkimRecordName).FirstOrDefault( txt => txt.TextData.Trim('\"') .Equals(dns.DkimPublicKey, StringComparison.InvariantCultureIgnoreCase)); dns.DkimVerified = dkimRecord != null; dns.DkimTtl = dkimRecord != null ? dkimRecord.TimeToLive : Defines.ServerDnsDefaultTtl; dns.DkimDateChecked = utcNow; return(true); }