public static bool UpdateMx(this ServerDns dns, string domain) { var utcNow = DateTime.UtcNow; var hasChanges = false; var dnsLookup = new DnsLookup(); if (dns.MxDateChecked.HasValue && dns.MxDateChecked.Value.AddSeconds(dns.MxTtl) >= utcNow) { return(hasChanges); } var mxRecord = dnsLookup .GetDomainMxRecords(domain) .FirstOrDefault(mx => mx.ExchangeDomainName.ToString().TrimEnd('.').Equals(dns.Mx)); dns.MxVerified = mxRecord != null; dns.MxTtl = mxRecord != null ? mxRecord.TimeToLive : Defines.ServerDnsDefaultTtl; dns.MxDateChecked = utcNow; hasChanges = true; return(hasChanges); }
public void GetMxRecords() { const string domain = "onlyoffice.com"; var dnsLoopup = new DnsLookup(); var mxRecords = dnsLoopup.GetDomainMxRecords(domain); Assert.IsTrue(mxRecords.Any()); }
public void GetNoexistedDomainMx() { const string domain = "taramparam.tk"; var dnsLoopup = new DnsLookup(); var mxRecords = dnsLoopup.GetDomainMxRecords(domain); Assert.IsTrue(!mxRecords.Any()); }
private ClientConfig SearchBusinessVendorsSettings(string domain) { ClientConfig settingsFromDb = null; try { var dnsLookup = new DnsLookup(); var mxRecords = dnsLookup.GetDomainMxRecords(domain); if (!mxRecords.Any()) { return(null); } var knownBusinessMxs = Defines.MxToDomainBusinessVendorsList.Where( mx => mxRecords.FirstOrDefault( r => r.ExchangeDomainName.ToString().ToLowerInvariant().Contains(mx.Key.ToLowerInvariant())) != null) .ToList(); foreach (var mxXdomain in knownBusinessMxs) { settingsFromDb = GetStoredMailBoxSettings(mxXdomain.Value); if (settingsFromDb != null) { return(settingsFromDb); } } } catch (Exception ex) { Log.Error("SearchBusinessVendorsSettings failed", ex); } return(settingsFromDb); }