aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/mailer.go
diff options
context:
space:
mode:
authorMaxim Zhiburt <zhiburt@gmail.com>2020-10-24 23:38:14 +0300
committerGitHub <noreply@github.com>2020-10-24 16:38:14 -0400
commita1952afc382bf0773094cbf36b1e3528d89c958b (patch)
treeb5a5717745b283b38614f39d6a7397dfacb7c413 /cmd/mailer.go
parentc5020cff3df0a7d77ff7a453a2007edc7e5c3667 (diff)
downloadgitea-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.go48
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
+}