mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
parent
597ebb1161
commit
c467e48940
@ -7,6 +7,7 @@ var ErrInvalidEmailCode = errors.New("Invalid or expired email code")
|
|||||||
type SendEmailCommand struct {
|
type SendEmailCommand struct {
|
||||||
To []string
|
To []string
|
||||||
Template string
|
Template string
|
||||||
|
Subject string
|
||||||
Data map[string]interface{}
|
Data map[string]interface{}
|
||||||
Info string
|
Info string
|
||||||
EmbededFiles []string
|
EmbededFiles []string
|
||||||
|
@ -57,6 +57,7 @@ func (this *EmailNotifier) Notify(evalContext *alerting.EvalContext) error {
|
|||||||
|
|
||||||
cmd := &m.SendEmailCommandSync{
|
cmd := &m.SendEmailCommandSync{
|
||||||
SendEmailCommand: m.SendEmailCommand{
|
SendEmailCommand: m.SendEmailCommand{
|
||||||
|
Subject: evalContext.GetNotificationTitle(),
|
||||||
Data: map[string]interface{}{
|
Data: map[string]interface{}{
|
||||||
"Title": evalContext.GetNotificationTitle(),
|
"Title": evalContext.GetNotificationTitle(),
|
||||||
"State": evalContext.Rule.State,
|
"State": evalContext.Rule.State,
|
||||||
|
@ -111,7 +111,6 @@ func buildEmailMessage(cmd *m.SendEmailCommand) (*Message, error) {
|
|||||||
|
|
||||||
var buffer bytes.Buffer
|
var buffer bytes.Buffer
|
||||||
var err error
|
var err error
|
||||||
var subjectText interface{}
|
|
||||||
|
|
||||||
data := cmd.Data
|
data := cmd.Data
|
||||||
if data == nil {
|
if data == nil {
|
||||||
@ -124,28 +123,34 @@ func buildEmailMessage(cmd *m.SendEmailCommand) (*Message, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
subjectData := data["Subject"].(map[string]interface{})
|
subject := cmd.Subject
|
||||||
subjectText, hasSubject := subjectData["value"]
|
if cmd.Subject == "" {
|
||||||
|
var subjectText interface{}
|
||||||
|
subjectData := data["Subject"].(map[string]interface{})
|
||||||
|
subjectText, hasSubject := subjectData["value"]
|
||||||
|
|
||||||
if !hasSubject {
|
if !hasSubject {
|
||||||
return nil, errors.New(fmt.Sprintf("Missing subject in Template %s", cmd.Template))
|
return nil, errors.New(fmt.Sprintf("Missing subject in Template %s", cmd.Template))
|
||||||
}
|
}
|
||||||
|
|
||||||
subjectTmpl, err := template.New("subject").Parse(subjectText.(string))
|
subjectTmpl, err := template.New("subject").Parse(subjectText.(string))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var subjectBuffer bytes.Buffer
|
var subjectBuffer bytes.Buffer
|
||||||
err = subjectTmpl.ExecuteTemplate(&subjectBuffer, "subject", data)
|
err = subjectTmpl.ExecuteTemplate(&subjectBuffer, "subject", data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
subject = subjectBuffer.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
return &Message{
|
return &Message{
|
||||||
To: cmd.To,
|
To: cmd.To,
|
||||||
From: setting.Smtp.FromAddress,
|
From: setting.Smtp.FromAddress,
|
||||||
Subject: subjectBuffer.String(),
|
Subject: subject,
|
||||||
Body: buffer.String(),
|
Body: buffer.String(),
|
||||||
EmbededFiles: cmd.EmbededFiles,
|
EmbededFiles: cmd.EmbededFiles,
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -80,6 +80,7 @@ func sendEmailCommandHandlerSync(ctx context.Context, cmd *m.SendEmailCommandSyn
|
|||||||
Template: cmd.Template,
|
Template: cmd.Template,
|
||||||
To: cmd.To,
|
To: cmd.To,
|
||||||
EmbededFiles: cmd.EmbededFiles,
|
EmbededFiles: cmd.EmbededFiles,
|
||||||
|
Subject: cmd.Subject,
|
||||||
})
|
})
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user