// SendIssueCommentMail composes and sends issue comment emails to target receivers. func SendIssueCommentMail(issue *Issue, doer *User, tos []string) { if len(tos) == 0 { return } mailer.SendAsync(composeIssueMessage(issue, doer, MAIL_ISSUE_COMMENT, tos, "issue comment")) }
// SendRegisterNotifyMail triggers a notify e-mail by admin created a account. func SendRegisterNotifyMail(c *macaron.Context, u *User) { data := map[string]interface{}{ "Username": u.DisplayName(), } body, err := mailRender.HTMLString(string(MAIL_AUTH_REGISTER_NOTIFY), data) if err != nil { log.Error(3, "HTMLString: %v", err) return } msg := mailer.NewMessage([]string{u.Email}, c.Tr("mail.register_notify"), body) msg.Info = fmt.Sprintf("UID: %d, registration notify", u.ID) mailer.SendAsync(msg) }
// SendActivateAccountMail sends confirmation email. func SendActivateEmailMail(c *macaron.Context, u *User, email *EmailAddress) { data := map[string]interface{}{ "Username": u.DisplayName(), "ActiveCodeLives": setting.Service.ActiveCodeLives / 60, "Code": u.GenerateEmailActivateCode(email.Email), "Email": email.Email, } body, err := mailRender.HTMLString(string(MAIL_AUTH_ACTIVATE_EMAIL), data) if err != nil { log.Error(3, "HTMLString: %v", err) return } msg := mailer.NewMessage([]string{email.Email}, c.Tr("mail.activate_email"), body) msg.Info = fmt.Sprintf("UID: %d, activate email", u.ID) mailer.SendAsync(msg) }
func SendUserMail(c *macaron.Context, u *User, tpl base.TplName, code, subject, info string) { data := map[string]interface{}{ "Username": u.DisplayName(), "ActiveCodeLives": setting.Service.ActiveCodeLives / 60, "ResetPwdCodeLives": setting.Service.ResetPwdCodeLives / 60, "Code": code, } body, err := mailRender.HTMLString(string(tpl), data) if err != nil { log.Error(3, "HTMLString: %v", err) return } msg := mailer.NewMessage([]string{u.Email}, subject, body) msg.Info = fmt.Sprintf("UID: %d, %s", u.ID, info) mailer.SendAsync(msg) }
// SendCollaboratorMail sends mail notification to new collaborator. func SendCollaboratorMail(u, doer *User, repo *Repository) { repoName := path.Join(repo.Owner.Name, repo.Name) subject := fmt.Sprintf("%s added you to %s", doer.DisplayName(), repoName) data := map[string]interface{}{ "Subject": subject, "RepoName": repoName, "Link": repo.HTMLURL(), } body, err := mailRender.HTMLString(string(MAIL_NOTIFY_COLLABORATOR), data) if err != nil { log.Error(3, "HTMLString: %v", err) return } msg := mailer.NewMessage([]string{u.Email}, subject, body) msg.Info = fmt.Sprintf("UID: %d, add collaborator", u.ID) mailer.SendAsync(msg) }
// SendIssueMentionMail composes and sends issue mention emails to target receivers. func SendIssueMentionMail(issue *Issue, doer *User, tos []string) { if len(tos) == 0 { return } mailer.SendAsync(composeIssueMessage(issue, doer, MAIL_ISSUE_MENTION, tos, "issue mention")) }