diff options
author | Maxim Zhiburt <zhiburt@gmail.com> | 2020-10-24 23:38:14 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-24 16:38:14 -0400 |
commit | a1952afc382bf0773094cbf36b1e3528d89c958b (patch) | |
tree | b5a5717745b283b38614f39d6a7397dfacb7c413 /cmd/mailer.go | |
parent | c5020cff3df0a7d77ff7a453a2007edc7e5c3667 (diff) | |
download | gitea-a1952afc382bf0773094cbf36b1e3528d89c958b.tar.gz gitea-a1952afc382bf0773094cbf36b1e3528d89c958b.zip |
Sendmail command (#13079)
* Add SendSync method
Usefull to have when you need to be confident that message was sent.
* Add sendmail command
* add checks that if either title or content is empty then error out
* Add a confirmation step
* Add --force option to bypass confirm step
* Move implementation of runSendMail to a different file
* Add copyrighting comment
* Make content optional
Print waring if it's empty or haven't been set up.
The warning will be skiped if there's a `--force` flag.
* Fix import style
Co-authored-by: 6543 <6543@obermui.de>
* Use batch when getting all users
IterateUsers uses batching by default.
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
* Send emails one by one instead of as one chunck
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
* Send messages concurantly
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
* Use SendAsync+Flush instead of SendSync
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
* Add timeout parameter to sendemail command
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
* Fix spelling mistake
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
* Update cmd/admin.go
Co-authored-by: 6543 <6543@obermui.de>
* Connect to a running Gitea instance
* Fix mispelling
* Add copyright comment
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'cmd/mailer.go')
-rw-r--r-- | cmd/mailer.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cmd/mailer.go b/cmd/mailer.go new file mode 100644 index 0000000000..a9a9048a5e --- /dev/null +++ b/cmd/mailer.go @@ -0,0 +1,48 @@ +// Copyright 2020 The Gitea 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 cmd + +import ( + "fmt" + "net/http" + + "code.gitea.io/gitea/modules/private" + "github.com/urfave/cli" +) + +func runSendMail(c *cli.Context) error { + if err := argsSet(c, "title"); err != nil { + return err + } + + subject := c.String("title") + confirmSkiped := c.Bool("force") + body := c.String("content") + + if !confirmSkiped { + if len(body) == 0 { + fmt.Print("warning: Content is empty") + } + + fmt.Print("Proceed with sending email? [Y/n] ") + isConfirmed, err := confirm() + if err != nil { + return err + } else if !isConfirmed { + fmt.Println("The mail was not sent") + return nil + } + } + + status, message := private.SendEmail(subject, body, nil) + if status != http.StatusOK { + fmt.Printf("error: %s", message) + return nil + } + + fmt.Printf("Succseded: %s", message) + + return nil +} |