package main import ( "fmt" "log" "net/http" "net/smtp" "time" ) const host = "rodberrypi" func main() { for { log.Println("Checking Fridge") if !endPointAlive() { log.Println("He Dead") sendMail() } else { log.Println("He Alive") } time.Sleep(3600 * time.Second) } } func endPointAlive() bool { res, err := http.Get("http://" + host + ":2122/heartbeat") if err != nil { log.Println(err) return false } if res.StatusCode != 200 { log.Println("Status Code ", res.StatusCode) return false } else { return true } } func sendMail() { // Sender data. from := "rodbiren@gmail.com" password := "Lovers8991" // Receiver email address. to := []string{"rcviren@gmail.com"} // smtp server configuration. smtpServer := smtpServer{host: "smtp.gmail.com", port: "587"} // Message. mime := "MIME-version: 1.0;\nContent-Type: text/plain; charset=\"UTF-8\";\n\n" subject := "Subject: " + "Garage Power is Out" + "!\n" message := []byte(subject + mime + "\n" + "Make Rob Fix It!") // Authentication. auth := smtp.PlainAuth("", from, password, smtpServer.host) // Sending email. err := smtp.SendMail(smtpServer.Address(), auth, from, to, message) if err != nil { fmt.Println(err) return } fmt.Println("Email Sent!") } // smtpServer data to smtp server. type smtpServer struct { host string port string } // Address URI to smtp server. func (s *smtpServer) Address() string { return s.host + ":" + s.port }