console/service/alerting/action/email.go

34 lines
752 B
Go

/* Copyright © INFINI Ltd. All rights reserved.
* Web: https://infinilabs.com
* Email: hello#infini.ltd */
package action
import (
"infini.sh/console/model/alerting"
"infini.sh/framework/core/queue"
"infini.sh/framework/core/util"
)
type EmailAction struct {
Data *alerting.Email
Subject string
Body string
}
//const EmailQueueName = "alert_email_messages"
func (act *EmailAction) Execute()([]byte, error){
queueCfg := queue.GetOrInitConfig(act.Data.ServerID)
emailMsg := util.MapStr{
"email": act.Data.Recipients.To,
"template": "raw",
"variables": util.MapStr{
"subject": act.Subject,
"body": act.Body,
},
}
emailMsgBytes := util.MustToJSONBytes(emailMsg)
err := queue.Push(queueCfg, emailMsgBytes)
return nil, err
}