From 6837ddf68f13a1633ea868ab55d71389ca5bc175 Mon Sep 17 00:00:00 2001 From: Horus3 Date: Fri, 27 Feb 2015 04:02:15 +0100 Subject: Version 0.2. Sends E-Mails now. Also sticky post on index page to quickly inform people. Concatenated all CSS and JavaScript files. --- app/email.go | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 app/email.go (limited to 'app/email.go') diff --git a/app/email.go b/app/email.go new file mode 100644 index 0000000..b497bf7 --- /dev/null +++ b/app/email.go @@ -0,0 +1,58 @@ +package main + +import ( + "bytes" + "github.com/jordan-wright/email" + "log" + "net/smtp" + "os" +) + +func SendEmail(u []User, h []Host) { + log.Println("Sending E-Mail") + if len(u) == 0 { + return + } + if len(h) == 0 { + return + } + log.Println("Sending E-Mail - Checked") + adresses := getEmails(u) + h = getHosts(h) + e := &email.Email{ + To: adresses, + From: "StatusPage <" + os.Getenv("STATUS_HTTP_ADRESS") + ">", + Subject: "Host is down (" + h[0].Host + ")", + HTML: getBody(h), + } + err := e.Send(os.Getenv("STATUS_HTTP_MAILER"), smtp.PlainAuth("", os.Getenv("STATUS_HTTP_ADRESS"), os.Getenv("STATUS_HTTP_PASSWORD"), os.Getenv("STATUS_HTTP_MAILER"))) + log.Println(err) +} + +func getEmails(u []User) []string { + var emails []string + for k, _ := range u { + emails = append(emails, u[k].Email) + } + return emails +} + +func getHosts(hosts []Host) []Host { + var h []Host + for k, _ := range hosts { + if !hosts[k].Monitored { + h = append(h, hosts[k]) + } + } + return h +} + +func getBody(hosts []Host) []byte { + + index := emailTempl.Lookup("index.html") + + var ret bytes.Buffer + index.ExecuteTemplate(&ret, "index.html", hosts) + + return ret.Bytes() +} -- cgit v1.2.3