public WebDomainData AddDomain(string name, int id_dns) { if (string.IsNullOrEmpty(name)) { throw new ArgumentException("Invalid domain name.", "name"); } if (name.Length > 255) { throw new ArgumentException("Domain name exceed limitation of 255 characters.", "name"); } if (!Parser.IsDomainValid(name)) { throw new ArgumentException("Incorrect domain name.", "name"); } var domain_name = name.ToLowerInvariant(); var free_dns = MailServer.GetFreeDnsRecords(MailServerFactory); if (free_dns.Id != id_dns) { throw new InvalidDataException("This dkim public key is already in use. Please reopen wizard again."); } var is_verified = free_dns.CheckDnsStatus(domain_name); var web_domain = MailServer.CreateWebDomain(domain_name, is_verified, MailServerFactory); web_domain.AddDns(id_dns, MailServerFactory); return(web_domain.ToWebDomainData(free_dns.ToDnsData())); }
public DnsData GetUnusedDnsRecords() { if (!IsAdmin) { throw new SecurityException("Need admin privileges."); } return(MailServer.GetFreeDnsRecords(MailServerFactory).ToDnsData()); }
public WebDomainData AddDomain(string name, int id_dns) { if (!IsAdmin) { throw new SecurityException("Need admin privileges."); } if (string.IsNullOrEmpty(name)) { throw new ArgumentException(@"Invalid domain name.", "name"); } if (name.Length > 255) { throw new ArgumentException(@"Domain name exceed limitation of 255 characters.", "name"); } if (!Parser.IsDomainValid(name)) { throw new ArgumentException(@"Incorrect domain name.", "name"); } var domainName = name.ToLowerInvariant(); var freeDns = MailServer.GetFreeDnsRecords(MailServerFactory); if (freeDns.Id != id_dns) { throw new InvalidDataException("This dkim public key is already in use. Please reopen wizard again."); } var dnsLookup = new DnsLookup(); if (!dnsLookup.IsDomainTxtRecordExists(domainName, freeDns.DomainCheckRecord)) { throw new InvalidOperationException("txt record is not correct."); } var isVerified = freeDns.CheckDnsStatus(domainName); var webDomain = MailServer.CreateWebDomain(domainName, isVerified, MailServerFactory); webDomain.AddDns(id_dns, MailServerFactory); return(webDomain.ToWebDomainData(freeDns.ToDnsData())); }
public DnsData GetUnusedDnsRecords() { return(MailServer.GetFreeDnsRecords(MailServerFactory).ToDnsData()); }