func composeIssueMessage(issue *Issue, doer *User, tplName base.TplName, tos []string, info string) *mailer.Message { subject := issue.MailSubject() body := string(markdown.RenderSpecialLink([]byte(issue.Content), issue.Repo.FullLink(), issue.Repo.ComposeMetas())) data := composeTplData(subject, body, issue.FullLink()) data["Doer"] = doer content, err := mailRender.HTMLString(string(tplName), data) if err != nil { log.Error(3, "HTMLString (%s): %v", tplName, err) } msg := mailer.NewMessage(tos, subject, content) msg.Info = fmt.Sprintf("Subject: %s, %s", subject, info) return msg }
// 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) }
func SendTestMail(email string) error { return gomail.Send(&mailer.Sender{}, mailer.NewMessage([]string{email}, "Gogs Test Email!", "Gogs Test Email!").Message) }