diff options
Diffstat (limited to 'modules/auth/mail.go')
-rw-r--r-- | modules/auth/mail.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/auth/mail.go b/modules/auth/mail.go new file mode 100644 index 0000000000..cdfcce4f99 --- /dev/null +++ b/modules/auth/mail.go @@ -0,0 +1,41 @@ +// Copyright 2014 The Gogs Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package auth + +import ( + "encoding/hex" + "fmt" + + "github.com/gogits/gogs/models" + "github.com/gogits/gogs/modules/base" + "github.com/gogits/gogs/modules/mailer" +) + +// create a time limit code for user active +func CreateUserActiveCode(user *models.User, startInf interface{}) string { + hours := base.Service.ActiveCodeLives / 60 + data := base.ToStr(user.Id) + user.Email + user.LowerName + user.Passwd + user.Rands + code := base.CreateTimeLimitCode(data, hours, startInf) + + // add tail hex username + code += hex.EncodeToString([]byte(user.LowerName)) + return code +} + +// Send user register mail with active code +func SendRegisterMail(user *models.User) { + code := CreateUserActiveCode(user, nil) + subject := "Register success, Welcome" + + data := mailer.GetMailTmplData(user) + data["Code"] = code + body := base.RenderTemplate("mail/auth/register_success.html", data) + + msg := mailer.NewMailMessage([]string{user.Email}, subject, body) + msg.Info = fmt.Sprintf("UID: %d, send register mail", user.Id) + + // async send mail + mailer.SendAsync(msg) +} |