12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package main
- import (
- "strconv"
- "time"
- fs "imuslab.com/arozos/mod/filesystem"
- notification "imuslab.com/arozos/mod/notification"
- "imuslab.com/arozos/mod/notification/agents/smtpn"
- )
- var notificationQueue *notification.NotificationQueue
- func notificationInit() {
- //Create a new notification agent
- notificationQueue = notification.NewNotificationQueue()
- //Register the notification agents
- /*
- SMTP Notification Agent
- For handling notification sending via Mail
- */
- //Load username and their email from authAgent
- userEmailmap := map[string]string{}
- allRecords := registerHandler.ListAllUserEmails()
- for _, userRercord := range allRecords {
- if userRercord[2].(bool) {
- userEmailmap[userRercord[0].(string)] = userRercord[1].(string)
- }
- }
- smtpnConfigPath := "./system/smtp_conf.json"
- if !fs.FileExists(smtpnConfigPath) {
- //Create an empty one
- smtpn.GenerateEmptyConfigFile(smtpnConfigPath)
- }
- smtpAgent, err := smtpn.NewSMTPNotificationAgent(*host_name, smtpnConfigPath,
- func(username string) (string, error) {
- //Translate username to email
- return registerHandler.GetUserEmail(username)
- })
- if err != nil {
- systemWideLogger.PrintAndLog("Notification", "Unable to start smtpn agent: "+err.Error(), nil)
- } else {
- notificationQueue.RegisterNotificationAgent(smtpAgent)
- }
- //Create and register other notification agents
- go func() {
- time.Sleep(10 * time.Second)
- return
- notificationQueue.BroadcastNotification(¬ification.NotificationPayload{
- ID: strconv.Itoa(int(time.Now().Unix())),
- Title: "Email Test",
- Message: "This is a testing notification for showcasing a sample email when DISK SMART error was scanned and discovered.<br> Please visit <a href='https://blog.teacat.io'>here</a> for more information.",
- Receiver: []string{"TC"},
- Sender: "SMART Nightly Scanner",
- ReciverAgents: []string{"smtpn"},
- })
- }()
- }
|