public MailboxData CreateMyMailbox(string name) { if (!SetupInfo.IsVisibleSettings("AdministrationPage") || !SetupInfo.IsVisibleSettings("MailCommonDomain") || CoreContext.Configuration.Standalone) { throw new Exception("Common domain is not available"); } var domain = MailServer.GetWebDomains(MailServerFactory).FirstOrDefault(x => x.Tenant == Defines.SHARED_TENANT_ID); if (domain == null) { throw new SecurityException("Domain not found."); } if (string.IsNullOrEmpty(name)) { throw new ArgumentException(@"Invalid mailbox name.", "name"); } var teamlabAccount = CoreContext.Authentication.GetAccountByID(SecurityContext.CurrentAccount.ID); if (teamlabAccount == null) { throw new InvalidDataException("Unknown user."); } var userInfo = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID); if (userInfo.IsVisitor()) { throw new InvalidDataException("User is visitor."); } if (name.Length > 64) { throw new ArgumentException(@"Local part of mailbox localpart exceed limitation of 64 characters.", "name"); } if (!Parser.IsEmailLocalPartValid(name)) { throw new ArgumentException("Incorrect mailbox name."); } var mailboxName = name.ToLowerInvariant(); var login = string.Format("{0}@{1}", mailboxName, domain.Name); var password = PasswordGenerator.GenerateNewPassword(12); var account = MailServerFactory.CreateMailAccount(teamlabAccount, login); var mailbox = MailServer.CreateMailbox(mailboxName, password, domain, account, MailServerFactory); if (IsSignalRAvailable) { MailBoxManager.UpdateUserActivity(TenantId, UserId); } return(mailbox.ToMailboxData()); }
public WebDomainData GetCommonDomain() { var listDomains = MailServer.GetWebDomains(MailServerFactory).Where(x => x.Tenant == Defines.SHARED_TENANT_ID); var listDomainData = listDomains.Select(domain => { var dns = domain.GetDns(MailServerFactory); var isVerified = dns.CheckDnsStatus(); if (domain.IsVerified != isVerified) { domain.SetVerified(isVerified); } return(domain.ToWebDomainData(dns.ToDnsData())); }).ToList(); return(listDomainData.FirstOrDefault()); }
public List <WebDomainData> GetDomains() { var list_domains = MailServer.GetWebDomains(MailServerFactory); var list_domain_data = list_domains.Select(domain => { var dns = domain.GetDns(MailServerFactory); var is_verified = dns.CheckDnsStatus(); if (domain.IsVerified != is_verified) { domain.SetVerified(is_verified); } return(domain.ToWebDomainData(dns.ToDnsData())); }).ToList(); return(list_domain_data); }
public List <WebDomainData> GetDomains() { if (!IsAdmin) { throw new SecurityException("Need admin privileges."); } var listDomains = MailServer.GetWebDomains(MailServerFactory); var listDomainData = listDomains.Select(domain => { var dns = domain.GetDns(MailServerFactory); var isVerified = dns.CheckDnsStatus(); if (domain.IsVerified != isVerified) { domain.SetVerified(isVerified); } return(domain.ToWebDomainData(dns.ToDnsData())); }).ToList(); return(listDomainData); }