aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mailer/mail.go
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-04-07 12:56:40 -0400
committerUnknown <joe2010xtmf@163.com>2014-04-07 12:56:40 -0400
commit9ea9818d3255e5b08293205e278240dece36687d (patch)
tree51c6a65586843082f451ee1e93082fec5784ccd2 /modules/mailer/mail.go
parent05fb34eacdbec59fb8bcdf96c82c0855e6ec78d2 (diff)
downloadgitea-9ea9818d3255e5b08293205e278240dece36687d.tar.gz
gitea-9ea9818d3255e5b08293205e278240dece36687d.zip
Fix issue with log in with GitHub but need more error handle after
Diffstat (limited to 'modules/mailer/mail.go')
-rw-r--r--modules/mailer/mail.go31
1 files changed, 24 insertions, 7 deletions
diff --git a/modules/mailer/mail.go b/modules/mailer/mail.go
index eee6b916ca..d2bf1310a0 100644
--- a/modules/mailer/mail.go
+++ b/modules/mailer/mail.go
@@ -111,11 +111,11 @@ func SendResetPasswdMail(r *middleware.Render, user *models.User) {
SendAsync(&msg)
}
-// SendNotifyMail sends mail notification of all watchers.
-func SendNotifyMail(user, owner *models.User, repo *models.Repository, issue *models.Issue) error {
+// SendIssueNotifyMail sends mail notification of all watchers of repository.
+func SendIssueNotifyMail(user, owner *models.User, repo *models.Repository, issue *models.Issue) ([]string, error) {
watches, err := models.GetWatches(repo.Id)
if err != nil {
- return errors.New("mail.NotifyWatchers(get watches): " + err.Error())
+ return nil, errors.New("mail.NotifyWatchers(get watches): " + err.Error())
}
tos := make([]string, 0, len(watches))
@@ -126,20 +126,37 @@ func SendNotifyMail(user, owner *models.User, repo *models.Repository, issue *mo
}
u, err := models.GetUserById(uid)
if err != nil {
- return errors.New("mail.NotifyWatchers(get user): " + err.Error())
+ return nil, errors.New("mail.NotifyWatchers(get user): " + err.Error())
}
tos = append(tos, u.Email)
}
if len(tos) == 0 {
- return nil
+ return tos, nil
}
subject := fmt.Sprintf("[%s] %s", repo.Name, issue.Name)
content := fmt.Sprintf("%s<br>-<br> <a href=\"%s%s/%s/issues/%d\">View it on Gogs</a>.",
- issue.Content, base.AppUrl, owner.Name, repo.Name, issue.Index)
+ base.RenderSpecialLink([]byte(issue.Content), owner.Name+"/"+repo.Name),
+ base.AppUrl, owner.Name, repo.Name, issue.Index)
+ msg := NewMailMessageFrom(tos, user.Name, subject, content)
+ msg.Info = fmt.Sprintf("Subject: %s, send issue notify emails", subject)
+ SendAsync(&msg)
+ return tos, nil
+}
+
+// SendIssueMentionMail sends mail notification for who are mentioned in issue.
+func SendIssueMentionMail(user, owner *models.User, repo *models.Repository, issue *models.Issue, tos []string) error {
+ if len(tos) == 0 {
+ return nil
+ }
+
+ issueLink := fmt.Sprintf("%s%s/%s/issues/%d", base.AppUrl, owner.Name, repo.Name, issue.Index)
+ body := fmt.Sprintf(`%s mentioned you.`)
+ subject := fmt.Sprintf("[%s] %s", repo.Name, issue.Name)
+ content := fmt.Sprintf("%s<br>-<br> <a href=\"%s\">View it on Gogs</a>.", body, issueLink)
msg := NewMailMessageFrom(tos, user.Name, subject, content)
- msg.Info = fmt.Sprintf("Subject: %s, send notify emails", subject)
+ msg.Info = fmt.Sprintf("Subject: %s, send issue mention emails", subject)
SendAsync(&msg)
return nil
}