mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
More work on email and notification infra #1456
This commit is contained in:
2
main.go
2
main.go
@@ -14,9 +14,9 @@ import (
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
"github.com/grafana/grafana/pkg/metrics"
|
||||
"github.com/grafana/grafana/pkg/plugins"
|
||||
"github.com/grafana/grafana/pkg/search"
|
||||
"github.com/grafana/grafana/pkg/services/eventpublisher"
|
||||
"github.com/grafana/grafana/pkg/services/mailer"
|
||||
"github.com/grafana/grafana/pkg/services/search"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/social"
|
||||
|
@@ -24,12 +24,12 @@ func GetApiKeys(c *middleware.Context) Response {
|
||||
}
|
||||
}
|
||||
|
||||
bus.Dispatch(&m.SendEmailCommand{
|
||||
To: []string{"torkel@raintank.io"},
|
||||
From: "grafana@test.com",
|
||||
Subject: "Test from Grafana2",
|
||||
Body: "Body! hej hoppas allt är bra",
|
||||
})
|
||||
// bus.Dispatch(&m.SendEmailCommand{
|
||||
// To: []string{"torkel@raintank.io"},
|
||||
// From: "grafana@test.com",
|
||||
// Subject: "Test from Grafana2",
|
||||
// Body: "Body! hej hoppas allt är bra",
|
||||
// })
|
||||
|
||||
return Json(200, result)
|
||||
}
|
||||
|
@@ -10,7 +10,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/metrics"
|
||||
"github.com/grafana/grafana/pkg/middleware"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/search"
|
||||
"github.com/grafana/grafana/pkg/services/search"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
)
|
||||
|
@@ -3,7 +3,7 @@ package api
|
||||
import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/middleware"
|
||||
"github.com/grafana/grafana/pkg/search"
|
||||
"github.com/grafana/grafana/pkg/services/search"
|
||||
)
|
||||
|
||||
func Search(c *middleware.Context) {
|
||||
|
39
pkg/models/emails.go
Normal file
39
pkg/models/emails.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package models
|
||||
|
||||
type SendEmailCommand struct {
|
||||
To []string
|
||||
From string
|
||||
Subject string
|
||||
Body string
|
||||
Type string
|
||||
Massive bool
|
||||
Info string
|
||||
}
|
||||
|
||||
type SendResetPasswordEmailCommand struct {
|
||||
Email string
|
||||
}
|
||||
|
||||
// create mail content
|
||||
func (m *SendEmailCommand) Content() string {
|
||||
// set mail type
|
||||
contentType := "text/plain; charset=UTF-8"
|
||||
if m.Type == "html" {
|
||||
contentType = "text/html; charset=UTF-8"
|
||||
}
|
||||
|
||||
// create mail content
|
||||
content := "From: " + m.From + "\r\nSubject: " + m.Subject + "\r\nContent-Type: " + contentType + "\r\n\r\n" + m.Body
|
||||
return content
|
||||
}
|
||||
|
||||
// Create html mail command
|
||||
func NewSendEmailCommand(To []string, From, Subject, Body string) SendEmailCommand {
|
||||
return SendEmailCommand{
|
||||
To: To,
|
||||
From: From,
|
||||
Subject: Subject,
|
||||
Body: Body,
|
||||
Type: "html",
|
||||
}
|
||||
}
|
@@ -15,16 +15,16 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
"github.com/grafana/grafana/pkg/notifications"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
var mailQueue chan *notifications.SendEmailCommand
|
||||
var mailQueue chan *m.SendEmailCommand
|
||||
|
||||
func Init() {
|
||||
bus.AddHandler("email", handleEmailCommand)
|
||||
|
||||
mailQueue = make(chan *notifications.SendEmailCommand, 10)
|
||||
mailQueue = make(chan *m.SendEmailCommand, 10)
|
||||
|
||||
setting.Smtp = setting.SmtpSettings{
|
||||
Host: "smtp.gmail.com:587",
|
||||
@@ -61,7 +61,7 @@ func encodeRFC2047(text string) string {
|
||||
return strings.Trim(addr.String(), " <>")
|
||||
}
|
||||
|
||||
func handleEmailCommand(cmd *notifications.SendEmailCommand) error {
|
||||
func handleEmailCommand(cmd *m.SendEmailCommand) error {
|
||||
log.Info("Sending on queue")
|
||||
mailQueue <- cmd
|
||||
return nil
|
||||
|
@@ -7,5 +7,5 @@ func Init() {
|
||||
}
|
||||
|
||||
func sendResetPasswordEmail(cmd *SendResetPasswordEmailCommand) error {
|
||||
email := NewMailMessage("")
|
||||
return nil
|
||||
}
|
@@ -8,7 +8,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/metrics"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/search"
|
||||
"github.com/grafana/grafana/pkg/services/search"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
Reference in New Issue
Block a user