package main import ( "errors" "log" "net/http" "os" ) func CreateNewEntry(email, password string) error { server := os.Getenv("FREEMAIL_SMTP_MAILER_MX") 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) // Checks for correct DNS if !vD.ValidateDomainMX(server) { if !vD.ValidateDomain(server) { return errors.New("Neither the MX record nor the domain itself point to this server. Please fix your DNS.") } } if !vD.DomainExists() { if !vD.CreateDomain() { return errors.New("There was an error.") } } vU.DomainId = vD.GetPrimaryKey() if vU.DomainId == 0 { return errors.New("There was an error.") } if !vU.CreateEmail() { return errors.New("There was an error.") } return nil } func ExecTemplate(template string, w http.ResponseWriter, flash Flash) error { index := mainTempl.Lookup(template) err := index.ExecuteTemplate(w, template, flash) if err != nil { log.Println(err) return err } return nil }