69 lines
1.6 KiB
Go
69 lines
1.6 KiB
Go
package mail
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"gitea.futuresens.co.uk/futuresens/logging"
|
|
mailjet "github.com/mailjet/mailjet-apiv3-go"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
const (
|
|
apiKey = "60f358a27e98562641c08f51e5450c9e"
|
|
secretKey = "068b65c3b337a0e3c14389544ecd771f"
|
|
)
|
|
|
|
const (
|
|
moduleName = "mail"
|
|
)
|
|
|
|
var (
|
|
// sendErrorEmail is the e-mail address to which to send an e-mail if there is an error during checkin or payment
|
|
SendErrorEmails []string
|
|
)
|
|
|
|
// SendMail will send reception an e-mail
|
|
func SendMail(recipient, title, message string) {
|
|
const funcName = "SendMail"
|
|
|
|
mailjetClient := mailjet.NewMailjetClient(apiKey, secretKey)
|
|
messagesInfo := []mailjet.InfoMessagesV31{
|
|
mailjet.InfoMessagesV31{
|
|
From: &mailjet.RecipientV31{
|
|
Email: "kiosk@cms.futuresens.co.uk",
|
|
Name: "Futuresens Kiosk",
|
|
},
|
|
To: &mailjet.RecipientsV31{
|
|
mailjet.RecipientV31{
|
|
Email: recipient,
|
|
Name: "",
|
|
},
|
|
},
|
|
Subject: title,
|
|
TextPart: message,
|
|
},
|
|
}
|
|
messages := mailjet.MessagesV31{Info: messagesInfo}
|
|
_, err := mailjetClient.SendMailV31(&messages)
|
|
if err != nil {
|
|
theFields := log.Fields{}
|
|
theFields["mailerror"] = true
|
|
theFields["recipient"] = recipient
|
|
theFields[logging.LogFunction] = funcName
|
|
theFields[logging.LogModule] = moduleName
|
|
theFields[logging.LogError] = err.Error()
|
|
theFields["error"] = err.Error()
|
|
|
|
log.WithFields(theFields).Error("sendmail error")
|
|
}
|
|
}
|
|
|
|
func SendEmailOnError(hotel string, kiosk int, title, errMsg string) {
|
|
log.Println("sendEmailOnError called")
|
|
|
|
message := fmt.Sprintf("Hotel: %s, kiosk: %d.\n%s", hotel, kiosk, errMsg)
|
|
for _, recipient := range SendErrorEmails {
|
|
SendMail(recipient, title, message)
|
|
}
|
|
}
|