package main import ( "errors" "os" ) func CreateNewEntry(email, password string) error { if !ValidateEmail(email) { return errors.New("This doesn't look like a mail adress.") } vU := VirtualUser{Email: email, Password: password} if vU.EmailExists() { return errors.New("Mail adress already exists.") } vD := VirtualDomain{} vD.Name = GetDomain(vU.Email) if !vD.ValidateDomainMX(os.Getenv("FREEMAIL_SMTP_MAILER_MX")) { return errors.New("The MX record doesn't point to this server.") } if !vD.ValidateDomain(os.Getenv("FREEMAIL_SMTP_MAILER_MX")) { return errors.New("This doesn't look like a good domain. Host not found.") } if !vD.DomainExists() { if !vD.CreateDomain() { return errors.New("There was an error.") } } vU.DomainId = vD.GetPrimaryKey() if !vU.CreateEmail() { return errors.New("There was an error.") } return nil }