diff options
| author | Horus3 | 2015-02-27 04:02:15 +0100 |
|---|---|---|
| committer | Horus3 | 2015-02-27 04:02:15 +0100 |
| commit | 6837ddf68f13a1633ea868ab55d71389ca5bc175 (patch) | |
| tree | 94fbfabdfa4506eb1b2dbf0067a7c0fa87f294c9 /app/email.go | |
| parent | 60767a3ea8190d3f070f3aae86c2d72ffb10cfd6 (diff) | |
| download | statuspage-6837ddf68f13a1633ea868ab55d71389ca5bc175.tar.gz | |
Version 0.2. Sends E-Mails now. Also sticky post on index page to quickly inform people. Concatenated all CSS and JavaScript files.
Diffstat (limited to 'app/email.go')
| -rw-r--r-- | app/email.go | 58 |
1 files changed, 58 insertions, 0 deletions
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() +} |
