diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2020-10-27 00:42:27 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-26 12:42:27 -0400 |
commit | 38d11eea58c6618fbab1a83e1637201964100e9a (patch) | |
tree | 78d63ac3be1259d2c60943073aeb2340b3834469 /routers/private/mail.go | |
parent | dbebc6b0e3a54b39c92a026be7b9ac270a20ea27 (diff) | |
download | gitea-38d11eea58c6618fbab1a83e1637201964100e9a.tar.gz gitea-38d11eea58c6618fbab1a83e1637201964100e9a.zip |
Fix send mail (#13312)
* Fix send mail
* Fix send mail
* Update modules/private/mail.go
Co-authored-by: techknowlogick <matti@mdranta.net>
Diffstat (limited to 'routers/private/mail.go')
-rw-r--r-- | routers/private/mail.go | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/routers/private/mail.go b/routers/private/mail.go index 8d09752487..b3b21d042f 100644 --- a/routers/private/mail.go +++ b/routers/private/mail.go @@ -5,6 +5,7 @@ package private import ( + "encoding/json" "fmt" "net/http" "strconv" @@ -12,6 +13,7 @@ import ( "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/private" + "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/services/mailer" "gitea.com/macaron/macaron" ) @@ -19,7 +21,25 @@ import ( // SendEmail pushes messages to mail queue // // It doesn't wait before each message will be processed -func SendEmail(ctx *macaron.Context, mail private.Email) { +func SendEmail(ctx *macaron.Context) { + if setting.MailService == nil { + ctx.JSON(http.StatusInternalServerError, map[string]interface{}{ + "err": "Mail service is not enabled.", + }) + return + } + + var mail private.Email + rd := ctx.Req.Body().ReadCloser() + defer rd.Close() + if err := json.NewDecoder(rd).Decode(&mail); err != nil { + log.Error("%v", err) + ctx.JSON(http.StatusInternalServerError, map[string]interface{}{ + "err": err, + }) + return + } + var emails []string if len(mail.To) > 0 { for _, uname := range mail.To { @@ -33,13 +53,15 @@ func SendEmail(ctx *macaron.Context, mail private.Email) { return } - if user != nil { + if user != nil && len(user.Email) > 0 { emails = append(emails, user.Email) } } } else { err := models.IterateUser(func(user *models.User) error { - emails = append(emails, user.Email) + if len(user.Email) > 0 { + emails = append(emails, user.Email) + } return nil }) if err != nil { |