//POST account/register func (c Account) PostRegister(user models.User) revel.Result { user.Validate(c.Validation) if c.Validation.HasErrors() { //把错误信息存到flash c.Validation.Keep() //把参数存到flash //c.FlashParams() return c.Redirect(routes.Account.Register()) } user.GravatarUrl = genGravatarUrl(user.Email) code := uuid.NewUUID() user.ActiveCode = code.String() user.ActiveCodeCreatedTime = time.Now() if !user.Save() { c.Flash.Error("Registered user failed") return c.Redirect(routes.Account.Register()) } c.Session[USERNAME] = user.Name subject := "activate password" content := fmt.Sprintf(`<h2><a href="http://%s:%s/account/activate/%s">`+ `activate account</a></h2>`, appAddr, appPort, user.ActiveCode) err := SendMail( subject, content, smtpConfig.Username, []string{user.Email}, smtpConfig, true) if err != nil { fmt.Println(err) } c.Flash.Success("please check email to make your account active") return c.Redirect(routes.Account.Notice()) }