package main import ( "errors" "log" "net/http" "os" ) func CreateNewEntry(email, password string) error { serverIP := 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) if !vD.ValidateDomainMX(serverIP) { return errors.New("The MX record doesn't point to this server.") } if !vD.ValidateDomain(serverIP) { 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 } 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 }